因为我编辑的被拒绝......
原代码发布了较大的脚本的一部分?如果是这样,那么你是否设置你的errcode来匹配ERRORLEVEL环境变量?
psexec \\workstation.domain -u username -p password cmd /c "assoc.pdf= "
IF '%ERRORLEVEL%'=='0' (
echo Success!
) else (
REM display psexec error here.
)
每当试图detemine IF/THEN批量和你使用==你需要用来包围变量和单“'”标记的valuecheck。上面的代码为您纠正了这个问题,并用ERRORLEVEL替代了errcode,这是Windows的默认环境变量。
此外,在实践中我总是用下面的任何ERRORLEVEL检查之前下降的初始值去适当地捕捉错误。
verify >nul
在这种情况下,我会做到以下几点:
verify >nul
psexec \\workstation.domain -u username -p password cmd /c "assoc.pdf= "
IF '%ERRORLEVEL%'=='0' (
echo Success!
) else (
echo.Error is %ERRORLEVEL%; please see http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspx for more details.
)
我加了一个WEBURL对收到的错误检查。
另外,您可以打开URL自动将相应的页面:
@ECHO OFF
verify >nul
set ERRCODE=0
psexec \\workstation.domain -u username -p password cmd /c "assoc.pdf= "
IF '%ERRORLEVEL%'=='0' (
echo Success!
) else (
set ERRCODE=%ERRORLEVEL%
)
IF %ERRCODE% LEQ 499 set MSERROR=681382
IF %ERRCODE% GTR 500 set MSERROR=681388
IF %ERRCODE% GTR 1000 set MSERROR=681383
IF %ERRCODE% GTR 1300 set MSERROR=681385
IF %ERRCODE% GTR 1700 set MSERROR=681386
IF %ERRCODE% GTR 4000 set MSERROR=681387
IF %ERRCODE% GTR 6000 set MSERROR=681389
IF %ERRCODE% GTR 8200 set MSERROR=681390
IF %ERRCODE% GTR 9000 set MSERROR=681391
IF %ERRCODE% GTR 12000 set MSERROR=681384
IF ERRCODE NEQ 0 start http://msdn.microsoft.com/en-us/library/ms%MSERROR%(v=vs.85).aspx
IF ERRCODE NEQ 0 echo.This failed with ERROR: %ERRCODE%
pause
编辑这一点 - 当检查IF%VAR%=值两者%VAR%和变应以“'”包围(蜱) – rud3y
此外,只是要注意,不知道如果你尝试过这个,但errcode不是一个environement变量,但ERRORLEVEL是。我不知道这是否是一个更大的脚本的一部分,但如果没有,尝试替代IF“%ERRORLEVEL%” ==“0”(...而不是“%ERRCODE%” – rud3y
不应该被判刑“有什么办法......”?( “IS”,而不是 “IF”) – Jocelyn