SilverSkin и Андерс оба верны. Вы можете использовать скобки для выполнения нескольких команд. Однако вы должны убедиться, что сами команды (и их параметры) не содержат скобок. cmd
жадно ищет первую закрывающую скобку вместо изящной обработки вложенных наборов скобок. Это может привести к тому, что остальная часть командной строки не будет проанализирована, или это может привести к тому, что некоторые из скобок будут переданы командам (например, DEL myfile.txt)
).
Обходной путь для этого - разделить тело цикла на отдельную функцию. Обратите внимание, что вам, вероятно, нужно прыгать вокруг тела функции, чтобы не «провалиться» в него.
FOR /r %%X IN (*.txt) DO CALL :loopbody %%X
REM Don't "fall through" to :loopbody.
GOTO :EOF
:loopbody
ECHO %1
DEL %1
GOTO :EOF