【bat】バッチファイルで引数を渡す方法

バッチファイルは、Windows環境でのタスク自動化に非常に便利なツールです。特に、引数を渡すことで、より柔軟でパワフルなスクリプトを作成できます。本記事では、バッチファイルに引数を渡す方法について詳しく解説します。

引数の受け取り方

バッチファイル内で引数にアクセスするには、%1, %2, %3といった形式を使用します。これらは、それぞれコマンドラインから渡された1番目、2番目、3番目の引数を表します。

サンプルバッチファイル

以下は、引数を受け取り、それを表示する簡単なバッチファイルの例です。

sample.bat

@echo off
echo 引数1: %1
echo 引数2: %2
echo 引数3: %3

バッチファイルの実行方法

このバッチファイルを実行する際に、コマンドプロンプトから引数を渡します。

sample.bat arg1 arg2 arg3

このコマンドを実行すると、以下のような出力が得られます。

引数1: arg1
引数2: arg2
引数3: arg3

引数の数をチェックする方法

引数の数をチェックするためには、以下のように if 文を使用します。

@echo off
if "%1"=="" (
    echo 引数が指定されていません。
    exit /b 1
)
if "%2"=="" (
    echo 少なくとも2つの引数を指定してください。
    exit /b 1
)
echo 引数1: %1
echo 引数2: %2

このバッチファイルでは、引数が指定されていない場合や、2つ以上の引数が指定されていない場合に適切なメッセージを表示し、エラーコード 1 で終了します。

すべての引数を処理する方法

すべての引数をループで処理するには、shift コマンドを使用します。

@echo off
setlocal enabledelayedexpansion
set count=0
:loop
if "%1"=="" goto end
set /a count+=1
echo 引数!count!: %1
shift
goto loop
:end
echo 全ての引数を処理しました。

このバッチファイルでは、渡されたすべての引数を順番に処理し、表示します。

まとめ

バッチファイルで引数を渡す方法は非常に簡単で、特定のシンボルを使用してアクセスできます。必要に応じて引数のチェックやループ処理も可能です。これを活用して、さまざまなタスクを自動化することができます。