我在写一个验证一些文件的批处理文件。当其中一个文件无效时,我希望批处理脚本停止并返回错误代码> 0。下面的代码似乎可以完成这项工作,但调用“EXIT 2”会关闭运行脚本的命令提示符窗口。如何在不关闭命令提示符窗口的情况下返回错误代码?
:Validate
SETLOCAL
Validator %1
IF %ERRORLEVEL% GEQ 1 EXIT 2
ENDLOCAL
关于如何在不关闭命令提示符的情况下返回错误代码的任何想法?
我在写一个验证一些文件的批处理文件。当其中一个文件无效时,我希望批处理脚本停止并返回错误代码> 0。下面的代码似乎可以完成这项工作,但调用“EXIT 2”会关闭运行脚本的命令提示符窗口。如何在不关闭命令提示符窗口的情况下返回错误代码?
:Validate
SETLOCAL
Validator %1
IF %ERRORLEVEL% GEQ 1 EXIT 2
ENDLOCAL
关于如何在不关闭命令提示符的情况下返回错误代码的任何想法?
要获得命令的帮助提示命令用自己的/?选项。 Exit /?
所示:
退出CMD.EXE程序(命令解释器)或当前批处理 脚本。
EXIT [/ B] [EXITCODE]
/B指定要退出当前批处理脚本代替 CMD.EXE的。如果从批处理脚本之外执行,则其 将退出CMD.EXE
exitCode指定一个数字号码。如果指定了/ B,则设置 ERRORLEVEL该号码。如果退出CMD.EXE,则使用该编号设置退出代码 。
所以,你要
IF %ERRORLEVEL% GEQ 1 EXIT /B 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
应保持在执行后的提示。
这一系列命令在最后退出,因为mvn是批处理文件。你需要调用mvn,而不是只执行它。如果您在调用其他批处理文件时不使用CALL,那么您将永远不会从您调用的任何批处理文件返回,所调用的那个文件将接管并且原始文件不再执行。 此外,文件末尾的CMD调用实际上是打开一个新的命令处理器,所以你会有两个运行而不是一个。 – David 2015-06-22 12:11:48
要返回任何东西,它必须完成... – vonbrand 2013-02-16 01:43:28