2017-02-15 74 views
-1

我试图用ERRORLEVEL写一个批处理文件。 不幸的是,它不工作(或更好的不按我期望的方式工作)。Windows Embeded Compact 7 - 使用批处理文件 - ERRORLEVEL不可能?

它似乎是ERRORLEVEL不可用作为环境变量。

上CMD: 如果%ERRORLEVEL%== 0回波测试

结果: 无回声

上CMD: 如果%ERRORLEVEL%==%ERRORLEVEL%回波测试

结果: 测试

上CMD: 回波%ERRORLEVEL%

结果: %ERRORLEVEL%

阅读关于使用SETLOCAL,但SETLOCAL不能执行

任何想法? 预先感谢您!

+0

使用旧的语法请参阅'if /?'。 “错误级别1”的命令意味着大于或等于1。 – LotPings

+0

我已经写了很多批处理文件,但是从来没有在__IF__条件下使用'%ERRORLEVEL%''。请参阅Microsoft支持文章[测试批处理文件中的特定错误级别](https://support.microsoft.com/zh-cn/kb/69576)。一般来说,如果出错代码的前一个命令/应用程序的错误级别1大于或等于1,或者如果不是错误级别1,退出代码等于0(或更低)就足够了,并且也可以在没有延迟扩展的命令块内工作。我不知道任何以负值退出的应用程序。这将违背所有操作系统的退出值准则。 – Mofi

回答

1

ERRORLEVEL需要执行过程或功能才能显示输入。比如说你想Ping Google,如果成功,它会打印出“Good”或打印出“Bad”,这就是ERRORLEVEL会生效的地方。如果进程或函数不存在,则不能使用ERRORLEVEL

EX。

echo off 
goto :pingtest 
cls 

:pingtest 
cls 
ping www.google.com 
if errorlevel 2 goto :good 
if errorlevel 1 echo :bad 

:good 
cls 
echo Good 
echo[ 
pause 

:bad 
cls 
echo Bad 
echo[ 
pause 

正如你可以从上面的代码中看到,有参与的过程。

此外,如果你有机会可以看看我的博客吗?http://pryrotech.weebly.com

+0

谢谢,因为看起来不是所有的命令都会导致错误级别。我会使用“IF EXIST”来修改批处理文件,以便在文件存在的情况下重新检查。感谢所有的支持。 – Arndt