如何在不关闭命令提示符窗口的情况下返回错误代码?

时间:2013-02-16 01:15:34

标签: windows batch-file dos command-prompt

我正在编写一个批处理文件来验证几个文件。当其中一个文件无效时,我希望批处理脚本停止并返回错误代码> 0。下面的代码似乎可以完成这项工作,但调用“EXIT 2”会关闭运行脚本的命令提示符窗口。

:Validate
SETLOCAL
Validator %1
IF %ERRORLEVEL% GEQ 1 EXIT 2
ENDLOCAL

如何在不关闭命令提示符的情况下返回错误代码?

3 个答案:

答案 0 :(得分:41)

要获取命令提示符命令的帮助,请使用他们的/?选项。 Exit /?显示:

  

退出CMD.EXE程序(命令解释程序)或当前批处理   脚本。

     

退出[/ B] [退出代码]

     

/ B指定退出当前批处理脚本而不是                 CMD.EXE。如果从批处理脚本外部执行,则为                 将退出CMD.EXE

     

exitCode指定数字编号。如果指定了/ B,则设置                 ERRORLEVEL那个数字。如果退出CMD.EXE,则设置进程                 用该号码退出代码。

所以你想要

IF %ERRORLEVEL% GEQ 1 EXIT /B 2

答案 1 :(得分:1)

您可以在调用exit之前使用pause命令。

如果你不喜欢这条消息:

pause > nul

答案 2 :(得分:-2)

遇到同样的问题。如果您正在编写批处理(Windows shell脚本)。 '的 CMD '应该为你做。这不会退出批处理并保持在命令提示符下。 解决了我的问题。 对于前: cd "\view\Flex Builder 3\gcc-mvn" set path="c:\view\jdk1.7.0_02\bin";"c:\view\apache-maven-3.0.5\bin";%path% mvn sonar:sonar cmd 执行后应该保持在提示符下。