バッチファイル内でコマンドを確認する方法
start "" javaw -jar %~p0/example.jar
成功したか、エラーが発生しましたか?
If/elseステートメントを使用して、この情報をエコー出力します。
使用できます
if errorlevel 1 echo Unsuccessful
ある場合には。これは、適切な終了コードを返す最後のコマンドに依存します。異常な状態があったとしても、プログラムが正常に戻った場合、何か問題があるとは言えません。
これはおそらくstart
では機能しません。新しいウィンドウを開始しますが、質問に答えるためです:
コマンドがエラーレベルを返す場合、次の方法を確認できます。
特定のエラーレベルによる
commandhere
if %errorlevel%==131 echo do something
エラーの場合
commandhere || echo what to do if error level ISN'T 0
エラーがない場合
commandhere && echo what to do if error level IS 0
エラーレベルを返さないが出力を提供する場合は、変数でそれをキャッチし、出力によって決定することができます。
フル出力の解析による
for /f "tokens=* delims=" %%a in ('somecommand') do set output=%%a
if %output%==whateveritwouldsayinerror echo error
または、WordErrorのような出力で単一のフレーズを探すこともできます。
文字列の確認による
commandhere | find "Error" || echo There was no error!
commandhere | find "Error" && echo There was an error!
一緒に混ぜることもできます(_|
with ^|
for
ステートメントの場合)
お役に立てれば。
ほとんどのコマンド/プログラムは、成功すると0を返し、エラーを通知するためにerrorlevel
と呼ばれる他の値を返します。
たとえば、次の方法でバッチでこれを確認できます。
call <THE_COMMAND_HERE>
if %ERRORLEVEL% == 0 goto :next
echo "Errors encountered during execution. Exited with status: %errorlevel%"
goto :endofscript
:next
echo "Doing the next thing"
:endofscript
echo "Script complete"
良さこれに対する答えを見つけるのに苦労しました...ここにあります:
cd thisDoesntExist
if %errorlevel% == 0 (
echo Oh, I guess it does
echo Huh.
)
Javawが%errorlevel%変数に書き込むかどうかはわかりませんが、そうなる可能性はあります。
echo %errorlevel%
直接実行して確認した後。
それ以外に、javawの出力をファイルにパイプしてから、find
を使用して結果が何であるかを確認できます。その出力を知ることなくして、私は本当にあなたを助けることはできません。