バッチファイルは、Windows環境の作業の自動化に非常に役立ちます。特に、バッチファイルに引数を渡して実行することで、より動的で柔軟な処理を作成できます。しかし、バッチファイルのユーザが必ず正しい数の引数を指定するとは限らないので、バッチファイルの側で引数が期待する内容かをチェックする必要があります。
この記事では、バッチファイルのコマンドライン引数の数をチェックする方法を紹介します。
コマンドライン引数とは?
バッチファイルを実行する際にコマンドラインから渡される追加情報を「コマンドライン引数」と呼びます。以下のようにバッチファイルを実行した場合は、arg1 と arg2 が引数です。
sample.bat arg1 arg2
これらはバッチファイル内で %1、%2 などの形式でアクセスできます。%0 はスクリプト自体の名前に対応します。
@echo off
echo %1
echo %2
実行結果
>sample.bat arg1 arg2
arg1
arg2
サンプルコード:コマンドライン引数の数をチェック
以下のサンプルは、コマンドライン引数が2つ以上渡されることを期待するバッチファイルです。引数が全く提供されていない場合、1つだけ提供された場合、そして2つ提供された場合に、それぞれ異なるメッセージを表示します。
@echo off
if "%1"=="" goto NoArgs
if "%2"=="" goto OnlyOneArg
echo 正常:2つの引数を受け取りました。
echo %1
echo %2
goto End
:NoArgs
echo エラー:引数がありません。
goto End
:OnlyOneArg
echo エラー:引数が不足しています。
goto End
:End
実行結果
>sample.bat arg1 arg2
正常:2つの引数を受け取りました。
arg1
arg2
まとめ
引数の数をチェックすることは、バッチファイルを確実に動作させるために重要です。本記事の内容を参考に、チェック処理を書いてみてください。