Как вызвать другой пакетный сценарий из пакетного сценария?
Я хочу, чтобы это выполнялось в if
заявлении.
Как вызвать другой пакетный сценарий из пакетного сценария?
Я хочу, чтобы это выполнялось в if
заявлении.
Использовать CALL
как в
CALL nameOfOtherFile.bat
Это заблокирует (приостановит) выполнение текущего командного файла и будет ждать, пока CALL
не завершится редактирование.
Если вы не хотите, чтобы он блокировался, используйте START
вместо этого.
Получите подробные сведения, используя CALL /?
или START /?
из командной строки.
Вы можете просто вызвать пакетный скрипт по имени, как если бы вы выполняли его из командной строки.
Итак, предположим, что у вас есть файл, в bar.bat
котором говорится, echo This is bar.bat!
и вы хотите вызвать его из файла foo.bat
, вы можете записать это в foo.bat
:
if "%1"=="blah" bar
Запустите foo blah
из командной строки, и вы увидите:
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
Но будьте осторожны : когда вы вызываете пакетный сценарий из другого пакетного сценария, исходный пакетный сценарий перестанет работать. Если вы хотите запустить вторичный пакетный сценарий, а затем вернуться к предыдущему пакетному сценарию, вам придется использовать эту call
команду. Например:
if "%1"=="blah" call bar
echo That's all for foo.bat!
Если вы запустите foo blah
это, вы увидите:
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!
Вы должны использовать CALL
CALL batch.bat
Ты можешь использовать
call script.bat
или просто
script.bat
call
он продолжит выполнение даже с ошибкой. в вызываемом скрипте.Вот пример:
У вас a.bat:
и b.bat вызывается условно из a.bat:
источник
Если вы хотите открыть командный файл в другом окне, используйте
start
. Таким образом, вы можете запускать два сценария одновременно. Другими словами, вам не нужно ждать завершения только что вызванного сценария. Все примеры ниже работают:Если вы хотите дождаться завершения скрипта, попробуйте
start /w call batch.bat
, но batch.bat должен заканчиваться наexit
.источник
Запускать параллельно в отдельных окнах команд в свернутом состоянии
dayStart.bat
Запускать последовательно в одном окне
release.bat
источник
да, я не знаю почему, но вызов не помог
call script.bat
, не вернулся к исходной консоли.cmd /k script.bat
вернулся к исходной консоли.источник