0

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

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: 。有人可以帮忙吗?

4

1 回答 1

1

检查IF帮助!

 `IF /?`

你会找到:

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

所以,

if errorlevel 1 ...

将对任何错误级别> = 1评估为真。

要获得精确匹配,请使用:

IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ...

或者

IF %ERRORLEVEL% == 1 ...

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

于 2013-08-30T08:04:12.773 回答