У меня есть пакетный файл,
bat1.bat
bat2.bat
но это останавливается в конце bat1
какие-либо подсказки?
Используйте call
:
call bat1.cmd
call bat2.cmd
По умолчанию, когда вы просто запускаете пакетный файл с другого контроллера, он не будет передан обратно вызывающему. Поэтому необходимо использовать call
.
В общем случае, если у вас есть такой пакет:
@echo off
echo Foo
batch2.cmd
echo Bar
то он будет выдавать только
Foo
Если вы запишете его как
@echo off
echo Foo
call batch2.cmd
echo Bar
, то он выдаст
Foo
Bar
, потому что после завершения batch2
, управление программой будет передано обратно в ваш оригинальный пакетный файл.
Это может произойти, если Bat1.bat останавливается ненормально (кроме как только для того, чтобы запустить до конца, например, вызов выхода), и вы можете работать вокруг этого, используя свежие cmd.exe для запуска каждого файла Bat:
start /b /wait bat1.bat
start /b /wait bat2.bat
Вы можете пропустить Это для последнего, если не будет следовать командам в файле Bat.