Синтаксическая ошибка при попытке запустить пакетные файлы в цикле

Синтаксическая ошибка при попытке запустить пакетные файлы в цикле
Синтаксическая ошибка при попытке запустить пакетные файлы в цикле - simplicity @ Unsplash

Я хочу запустить эти 3 .bat файла в цикле. Попробовал эти 2 кода и получил ошибку синтаксиса в обоих случаях

@echo off
:loop
start "c:\1.bat" && "c:\2.bat" && "c:\3.bat" &&
GOTO :loop

и

@echo off
for /l %%x in (1, 1, 9999) do (
    start "c:\1.bat" && "c:\2.bat" && "c:\3.bat" &&
   set /a loopCount=%loopCount%-1
   if %loopCount%==0 GOTO:EOF
)

Я считаю, что слишком много && и следует использовать пробел перед :EOF.

Лично я бы избегал использования && для будущего обслуживания и читабельности.

Если вы хотите, чтобы 1.bat, 2.bat и 3.bat оставались на экране, используйте /K, как показано ниже. В противном случае используйте /C, чтобы 1.bat, 2.bat и 3.bat могли выйти после выполнения.

Я не уверен в назначении %loopCount% - кроме как для защиты от выхода из цикла - но не забудьте инициализировать эту переменную перед ее использованием (хорошая практика кодирования).

Вот пример:

@echo off
set /a maxLoop=5
set /a loopCount=%maxLoop%
for /l %%x in (1, 1, %maxLoop%) do (
   start %COMSPEC% /K c:\1.bat
   start %COMSPEC% /K c:\2.bat
   start %COMSPEC% /K c:\3.bat
   set /a loopCount=%loopCount%-1
   if "%loopCount%"= = "0" GOTO :EOF
)

NevaDev, 4 февраля 2023 г., 15:05

Похожие посты

Тайм-аут TFTP без видимой причиныКак выполнить команду kill `ps -ef | grep 1.sh` как SUDO SU из пакетного файла через терминал Putty, чтобы убить ВСЕ процессы, с заданным именем, а не только 1-й?Получение сообщения "Доступ запрещен" при перемещении папки по симлинку, указывающему на другой дискChrome включить WebGL командной строкойЕсть ли способ заставить Powershell использовать прямую косую черту вместо обратной косой черты для автозаполнения пути?Как создать пакетный файл для застегивания файлов в нескольких папках?Есть ли возможность пакетного конвертирования видеофайлов (разных форматов) и удаления метаданных с помощью ffmpeg?Использование специальных символов из bat-файла в windowsОтправить переменную в фоновый процесс, который представляет собой цикл :label самой биты (или остановить цикл, если переменная определена)Hls segment name outputting full file path for %03d