#errorlevelとは
errorlevelは終了コードを取得する変数です。
0が正常終了。0以外が異常終了とします。
例えば、以下のバッチを実行すると
例 test.bat
@echo off
rem testディレクトリに移動
cd test
rem エラーラベルを表示
echo %errorlevel%
結果は以下になります。
例 test.bat~実行結果
指定されたパスが見つかりません。
1
testというディレクトリは例では存在しないので
指定されたパスが見つかりません。とエラーになります。
そして、エラーラベルは1が表示されていて異常終了していることがわかります。
#IF errorlevelとは
エラーラベルが0以外の異常終了の場合に次のコマンドを実行するバッチ作成をしたい場合にはif errorlevel を使用します。
例えば、test.batの
testディレクトリがないときは
指定されたパスが見つかりません。
ではなく
そのディレクトリは存在しません。と
表示させるようにしたいときは以下のように作成します。
例 test2.bat
@echo off
rem エラーメッセージは空のファイルに出力
cd test 2> nul
rem もしエラーラベルが0ではないときはコメントを表示させる
if %errorlevel% neq 0(
echo そのディレクトリは見つかりません。
exit /b
)
rem 正常終了した場合に表示
echo 正常に移動しました。
例 test2.bat~実行結果
そのディレクトリは見つかりません。
これでtestディレクトリがない場合は、そのディレクトリは見つかりません。
と表示されるようになりました。
またtestディレクトリが存在している場合は正常に移動しました。と表示されます。
このIFを使った条件分岐の方法は使うことがよくあると思います。
IFにもいろいろ使い方があるのでぜひ調べてみてください。