为什么只执行条件的第一行?

时间:2014-07-24 21:03:05

标签: batch-file

我有一个简单的批处理文件,如果操作失败,我想在其中执行操作。在这种情况下,似乎只有第一行由于某种原因而执行......

call "%local_path%\unins000.exe" /verysilent
IF ERRORLEVEL 1 (
  echo ERROR: uninstallation failed
  REM Installation failed, deletes the folder
  rmdir /s /q "%local_path%" 
  set batcherrorlevel=1
)

IF %batcherrorlevel% neq 0 exit /b %batcherrorlevel%

如果卸载失败,则回显工作并显示,但我的退出代码为0.但是,如果我放置行"设置batcherrorlevel = 1"作为条件中的第一行,退出代码为1,但回显不会打印。

编辑:我从来没有找到问题的真正原因,但它似乎已经解决了问题......让我烦恼一点,但只要它有效,我猜它就是这样。好的...

2 个答案:

答案 0 :(得分:1)

当您在块语句中放置备注时,有时批处理文件会崩溃

答案 1 :(得分:0)

我认为您可能需要将其包装在百分比中,并添加一个==运算符。 我在比较中,但这可能就是我。

If "%ERRORLEVEL%"=="1"

或者您可以查看是否需要使用续行符。 见http://blogs.msdn.com/b/oldnewthing/archive/2008/08/06/8835317.aspx