Я хочу запустить эти 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
)