如何获取批处理文件 .bat 如果出现错误,则继续执行下一条语句

StackOverflow https://stackoverflow.com/questions/74267

  •  09-06-2019
  •  | 
  •  

我正在尝试在 .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 表示错误)。然后可以在批处理文件中使用该值。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top