题
我正在尝试在 .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
解决方案
在另一个命令实例中运行它 CMD /C
CMD /C vmware-cmd C:\...
这应该保持原始 BAT 文件运行。
其他提示
如果要调用另一个批处理文件,则必须使用 CALL batchfile.cmd
您是否尝试过对正在执行的每个命令使用“start (cmd)”?
您可以编写一个小程序来执行命令并返回一个值(例如 -1 表示错误)。然后可以在批处理文件中使用该值。
即使前一个命令生成了错误,批处理文件也应继续执行。也许,您看到的是由于其他错误而导致批处理中止?
不隶属于 StackOverflow