Как запустить пакетный сценарий из пакетного сценария?


Как вызвать другой пакетный скрипт из пакетного скрипта?

Я хочу, чтобы он выполнялся в if заявление.

5 72

5 ответов:

использовать CALL а в

CALL nameOfOtherFile.bat

это заблокирует (приостановит) выполнение текущего пакетного файла, и он будет ждать, пока CALLЭд завершается.

если вы не хотите, чтобы заблокировать, используйте .

получить мелкие детали с помощью 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!

но будьте осторожны: при вызове пакетного сценария из другого пакетного сценария исходный пакетный сценарий перестанет выполняться. Если вы хотите запустить вторичный пакетный сценарий, а затем вернуться к предыдущему пакетному сценарию, вам нужно будет использовать . Например:

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 batch.bat

можно использовать

call script.bat

или просто

script.bat

вот пример:

у вас есть. bat:

@echo off
if exist b.bat goto RUNB
goto END
:RUNB
b.bat
:END

и b.bat называется условно от A. bat:

@echo off 
echo "This is b.bat"