導入
バッチを実行するときに、後ろに値を付けて渡せます。これを 引数(ひきすう)と呼びます。同じバッチを、対象ファイルだけ変えて使い回したいときに便利です。
説明
バッチの中では、渡された引数を %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.bat は backup.bat report.txt のように使うと、report.txt を report.txt.bak にコピーします。
10個以上の引数
%1〜%9の先まではshiftコマンドで引数を1つずつ「ずらして」処理します。まずは9個までで十分ですが、そういう仕組みがあると覚えておきましょう。
やってみよう
引数を2つ受け取り、「1つ目 と 2つ目 を受け取りました」と表示するバッチを書き、いろいろな値を渡して実行してみましょう。