28

いくつかのファイルを検証するバッチファイルを書いています。ファイルの1つが無効な場合、バッチスクリプトを停止して、エラーコード>0を返します。以下のコードは機能しているように見えますが、「EXIT 2」を呼び出すと、スクリプトが実行されていたコマンドプロンプトウィンドウが閉じます。

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

コマンドプロンプトを閉じずにエラーコードを返す方法について何か考えはありますか?

4

3 に答える 3

58

コマンドプロンプトコマンドのヘルプを表示するには、/?を使用します。オプション。 Exit /?ショー:

CMD.EXEプログラム(コマンドインタープリター)または現在のバッチスクリプトを終了します。

EXIT [/ B] [exitCode]

/ Bは、CMD.EXEの代わりに現在のバッチスクリプトを終了することを指定します。バッチスクリプトの外部から実行すると、CMD.EXEを終了します

exitCodeは数値を指定します。/ Bが指定されている場合、その番号にERRORLEVELを設定します。CMD.EXEを終了する場合は、その番号でプロセス終了コードを設定します。

あなたが望んでいるのは

IF %ERRORLEVEL% GEQ 1 EXIT /B 2
于 2013-02-16T01:28:08.663 に答える
3

pauseexitを呼び出す前にコマンドを使用できます。

メッセージが気に入らない場合:

pause > nul

ウィンドウを閉じたくないが、コマンドプロンプトに戻るだけの場合は、次を使用する必要があります。

EXIT /B
于 2013-02-16T01:19:35.510 に答える
-2

同じ問題が発生しました。バッチを作成している場合(Windowsシェルスクリプト)。' 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 実行後もプロンプトに留まる必要があります。

于 2014-08-22T05:55:11.117 に答える