2013-08-29 94 views
0

我有两台Windows 2008 SP2服务器,其中一台为其他生产服务器。 Production正在运行Microsoft CLuster服务。现在,在一个特定的批处理脚本下面的命令有:errorlevel可以在一台服务器上运行,但不能运行其他

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

Excpt: 
echo "script backup error" 

在开发这个正常工作,DSMC增量收益8上成功完成脚本移动到清除代码。但在生产中,即使dsmc incr返回8,错误级别始终计算为1,并跳转到Excpt:。任何人都可以帮忙吗?

+0

我有一个更新,dsmc incr在开发时返回0,并在生产中返回代码8。所以如果错误级别1表示错误级别大于或等于1,那么按照[链接](http://stackoverflow.com/questions/3942265/errorlevel-in-a-for-loop-batch-windows)只有一个。 –

+0

在你的问题中纠正它! –

回答

1

检查IF帮助!

`IF /?` 

你会发现:

ERRORLEVEL(...)如果最后运行的程序返回的退出代码等于或大于指定的数大的真实情况。

所以,

if errorlevel 1 ... 

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

为了得到精确匹配,使用:其中ERRORLEVEL作为环境变量

IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 ... 

IF %ERRORLEVEL% == 1 ... 

最后一个不能在环境中工作。

相关问题