我有两个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 :.有人可以帮忙吗?
答案 0 :(得分:1)
检查IF
帮助!
`IF /?`
你会发现:
ERRORLEVEL(...)如果最后一次程序运行返回的退出代码等于或大于指定的数字,则指定一个真实条件。
所以,
if errorlevel 1 ...
对于任何错误级别> = 1,将评估为真。
要获得完全匹配,请使用:
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ...
或
IF %ERRORLEVEL% == 1 ...
最后一个不适用于ERRORLEVEL
用作环境变量的环境。