Запуск всех командных файлов в заданном каталоге
У меня есть следующий пакетный скрипт для запуска всех файлов в каталоге. Однако этот сценарий представляет собой бесконечный цикл и продолжает повторяться. Есть ли способ остановить сценарий, когда он заканчивает последний пакетный файл ниже мой сценарий
@echo off
for /R %%x in (*.bat) do (
call "%%x"
)
pause
2 ответа
Поскольку вы включаете этот скрипт в свой текущий каталог, он запускается вместе с другими: рекурсивный / бесконечный вызов.
Либо поместите этот сценарий на один уровень выше, перейдите в каталог файлов bat и перейдите в него ..\yourscript.bat
Или вы можете отфильтровать текущий скрипт в вашем цикле:
@echo off
for /R %%x in (*.bat) do (
if not "%%x" == "%~0" call "%%x"
)
Это происходит потому, что вы запускаете пакет в той же папке, что и все другие пакетные файлы, перемещаете этот пакет в другую папку и настраиваете (*.bat)
путь к (other_folder\*.bat)
, Другой способ - проверить, совпадает ли пакет с выполняемым, и пропустить этот.