Как получить пакетный файл .bat перейти к следующему утверждению, если есть ошибка - PullRequest
19 голосов
/ 16 сентября 2008

Я пытаюсь записать сценарий выключения моих серверов VM в .bat. если одна из команд vmware-cmd завершится неудачно (скажем, машина уже выключена), я бы хотел, чтобы она продолжалась, а не разрабатывалась.

c:
cd "c:\Program Files\VMWare\VmWare Server"

vmware-cmd C:\VMImages\TCVMDEVSQL01\TCVMDEVSQL01.vmx suspend soft -q
vmware-cmd C:\VMImages\DevEnv\DevEnv\DevEnv.vmx suspend soft -q
vmware-cmd C:\VMImages\DevEnv\TCVMDEV02\TCVMDEV02.vmx suspend soft =q


robocopy c:\vmimages\ \\tcedilacie1tb\VMShare\DevEnvironmentBackups\ /mir /z /r:0 /w:0

vmware-cmd C:\VMImages\TCVMDEVSQL01\TCVMDEVSQL01.vmx start
vmware-cmd C:\VMImages\DevEnv\DevEnv\DevEnv.vmx start 
vmware-cmd C:\VMImages\DevEnv\TCVMDEV02\TCVMDEV02.vmx start

Ответы [ 5 ]

29 голосов
/ 16 сентября 2008

Запустите его внутри другого экземпляра команды с CMD /C

CMD /C vmware-cmd C:\...

Это должно поддерживать исходные файлы BAT.

4 голосов
/ 16 сентября 2008

Если вы вызываете другой пакетный файл, вы должны использовать CALL batchfile.cmd

3 голосов
/ 16 сентября 2008

Вы пытались использовать "start (cmd)" для каждой выполняемой команды?

0 голосов
/ 16 сентября 2008

Пакетный файл должен продолжать выполняться, даже если предыдущая команда вызвала ошибку. Возможно, вы видите, что пакет прерывается из-за какой-то другой ошибки?

0 голосов
/ 16 сентября 2008

Вы могли бы написать небольшую Программу, которая выполняет команду и возвращает значение (скажем, -1 для ошибки). Это значение затем может быть использовано в вашем пакетном файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...