errorlevel适用于一台服务器,但不适用于其他服

时间:2013-08-29 21:03:30

标签: batch-file windows-server-2008 errorlevel

我有两个Windows 2008 SP2服务器,一个开发其他产品。生产已运行Microsoft CLuster服务。现在在一个特定的批处理脚本中有以下命令:

dsmc incr "%ARCHIVE_DIR%\*"
if errorlevel 1 goto EXCPT
more code to do purging

Excpt:
echo "script backup error"

在dev中按预期工作,dsmc incr在成功完成时返回8,脚本移动到清除代码。但是在生产中,即使dsmc incr返回8,errorlevel总是计算为1并且它跳转到Excpt :.有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

检查IF帮助!

 `IF /?`

你会发现:

  

ERRORLEVEL(...)如果最后一次程序运行返回的退出代码等于或大于指定的数字,则指定一个真实条件。

所以,

if errorlevel 1 ...
对于任何错误级别> = 1,

将评估为真。

要获得完全匹配,请使用:

IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ...

IF %ERRORLEVEL% == 1 ...

最后一个不适用于ERRORLEVEL用作环境变量的环境。