去年と同様にバッチを使用する際に覚えておくと便利なコマンドをご紹介させていただきます。
今回は「errorlevel」を用いて条件分岐のやり方について記述していきたいと思います。
1 errorlevelについて
そもそも「errorlevel」とはどういったコマンドなのか、
このコマンドを用いることによって「前のコマンドが正常終了したかを確認」することができます。
前のコマンドの成功の可否で後の処理を変更したい場合に便利なコマンドとなります。
errorlevelコマンドの基本情報(処理の挙動)
直前のコマンドが成功 → errorlevel変数に「0」が入ります
直前のコマンドが失敗 → errorlevel変数に「1」が入ります
コマンド自体がない場合はerrorlevel変数に「9009」が入ります
※使用例※
OSのビルド番号を確認しバージョンを特定し、指定のビルド番号(今回はWin11の23H2のビルド番号が22631)未満の場合はバージョンアップが必須とコマンドで出す場合。
systeminfo | findstr /B :"OS バージョン:"|findstr "22631"
if %errorlevel% == 0 (
echo 【事後判定_OK】バージョンアップ済み
) else (
echo 【事後判定_NG】バージョンアップが必要
)
exit /b
解説
systeminfo → PCのシステム情報を表示させる。
findstr /B → 文字列の検索 /Bのオプションをつけることで行の先頭が” ”内から始まるものに指定する。(今回の場合、OSバージョン)
OSバージョン内を検索し、なおかつ”22631”があった場合errorleveの変数は「0」となる。
”22631”がない場合は失敗したという扱いのため、errorleveの変数は「1」となる。
if %errorlevel% == 0 (
echo 【事後判定_OK】バージョンアップ済み
) else (
echo 【事後判定_NG】バージョンアップが必要
→ %errorlevel%で変数を参照し「0」であれば、【事後判定_OK】バージョンアップ済み
eleseで条件を満たしていなければ、 【事後判定_NG】バージョンアップが必要 と表示させる。
今回使用した例はほんの一部ではありますが、これらを応用することで役に立つものができるはずです。まずは実際に試してみて試行錯誤することがこういったコマンドを習得する一歩なのかなと思います。