3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コマンドが失敗したときに異常終了しましたと表示させたいとき~errorlevel

Last updated at Posted at 2020-01-15

#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にもいろいろ使い方があるのでぜひ調べてみてください。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?