本文へスキップ
BecomeCoder

バッチファイルコース · 第4章 引数と制御構文 · レッスン11

引数を受け取る ― `%1` 〜 `%9`

導入

バッチを実行するときに、後ろに値を付けて渡せます。これを 引数(ひきすう)と呼びます。同じバッチを、対象ファイルだけ変えて使い回したいときに便利です。

説明

バッチの中では、渡された引数を %1%2、… %9 の順で受け取れます。%0 はバッチ自身のファイル名です。

例えば greet.bat を次のように書き、

@echo off
echo 1つ目の引数: %1
echo 2つ目の引数: %2
echo すべての引数: %*

コマンドプロンプトで greet.bat りんご みかん と実行すると、%1りんご%2みかん が入ります。%* は「渡された引数すべて」をまとめて表します。

引数に空白を含めたいときは、greet.bat "山田 太郎" のようにダブルクオートで囲んで渡します。受け取った側でパスとして使うなら "%1" と、こちらもクオートで囲むのが安全です。

@echo off
echo %1 のバックアップを作ります
copy "%1" "%1.bak"
echo 完了しました

この backup.batbackup.bat report.txt のように使うと、report.txtreport.txt.bak にコピーします。

10個以上の引数 %1%9 の先までは shift コマンドで引数を1つずつ「ずらして」処理します。まずは9個までで十分ですが、そういう仕組みがあると覚えておきましょう。

やってみよう

引数を2つ受け取り、「1つ目 と 2つ目 を受け取りました」と表示するバッチを書き、いろいろな値を渡して実行してみましょう。