我在寫一個驗證一些文件的批處理文件。當其中一個文件無效時,我希望批處理腳本停止並返回錯誤代碼> 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