20

我正在尝试在 .bat 中编写关闭 VM 服务器的脚本。如果 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
4

5 回答 5

32

在另一个命令实例中运行它CMD /C

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

这应该保持原始 BAT 文件运行。

于 2008-09-16T16:37:59.950 回答
6

如果您正在调用另一个批处理文件,则必须使用 CALL batchfile.cmd

于 2008-09-16T16:55:15.820 回答
4

您是否尝试过对正在执行的每个命令使用“start (cmd)”?

于 2008-09-16T16:36:17.210 回答
0

您可以编写一个小程序来执行命令并返回一个值(例如 -1 表示错误)。然后可以在您的批处理文件中使用此值。

于 2008-09-16T16:37:15.147 回答
0

即使前面的命令产生了错误,批处理文件也应该继续执行。也许,您看到的是由于其他错误导致批处理中止?

于 2008-09-16T16:43:17.253 回答