2008-09-16 103 views
18

我想脚本关闭我的VM服务器在.bat中。 如果其中一个vmware-cmd命令失败(因为机器已经关闭),我希望它继续而不是轰炸。如何获得一个批处理文件.bat继续到下一个语句,如果有错误

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 

回答

26

CMD /C

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

这样运行它另一个命令实例内应保持原有的BAT文件运行。

3

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

0

您可以编写一个执行该命令并返回一个值的小程序(对于错误,说-1)。这个值可以在你的批处理文件中使用。

0

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

4

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

+0

我是从一个主要工作(morning.bat)和任何一个时间的调用几个批处理文件(query1.bat query2.bat)在清理旧的日志时,小的.bat文件遇到了“找不到文件”的错误,整个事情就会停止。这个伎俩。 +1和谢谢。 – 2013-11-12 13:59:21

相关问题