Windows10でバッチファイルの実行時に引数を渡したい
この記事では、Windows10でバッチファイルの実行時に引数を渡す方法をご紹介していきます。
Windows10でバッチファイルの実行時に引数を渡す方法
引数の指定・バッチファイル内で引数を参照する方法
それでは、引数の指定やバッチファイル内で引数を参照する方法を説明します。バッチファイルの実行時にコマンドライン引数を指定するためには、「バッチファイル 引数1 引数2 引数3」のように入力します。複数の引数を指定する場合は、半角スペースを挿入することで区切ることができます。コマンドライン引数で渡した値は、「%1」~「%9」という記述を用いることで取り出して使用することができます。テスト用に、バッチファイルを作成してみましょう。この例では、「test.bat」というバッチファイルを作成しています。作り方は下記の通りです。
@echo off echo %%0 = %0 echo %%1 = %1 echo %%2 = %2 echo %%3 = %3
この状態で、下記のようにバッチファイルを実行してみてください。
test.bat 日本 男子 10
引数を区切ることのできる文字
バッチファイルで複数の引数を指定する場合は半角スペースだけではなく、「;(セミコロン)」・「,(カンマ)」・「等号(=)」を使用することができます。先程の例は半角スペースで区切っていましたが、これらの文字で区切ると下記の通りになります。区切りを可視化したいのであれば、半角スペースではなくこれらの文字を使用して区切ってみましょう。
test.bat 日本;男子;10 test.bat 日本,男子,10 test.bat 日本=男子=10
区切る文字を引数で文字として使用したい場合
半角スペースと「;(セミコロン)」・「,(カンマ)」・「等号(=)」の4つを引数として指定する値の中で使用している場合、そのまま入力すると区切られてしまいます。そこで、区切り文字を値の中で使用している場合は「"(ダブルクォーテーション)」で囲みましょう。下記の例では「日本 東京都」と「1,120」を""で囲んでいるため、引数として渡すことができています。
test.bat "日本 東京都" 男子 "1,120"
ダブルクォーテーションを取り除きたい場合
上記の方法で区切り文字が付いていても"(ダブルクォーテーション)を使用して値にできることを説明しましたが、「"値"」のように表示されてしまいます。このダブルクォーテーションを取り除くには、「%1」の代用として「%~1」を用います。バッチファイル内の記述を下記の通りにしてから上記のコマンドを試すと、ダブルクォーテーションが取り除かれて結果が表示されますよ。
@echo off echo %%0 = %0 echo %%1 = %1 echo %%~1 = %~1 echo %%2 = %2 echo %%~2 = %~2 echo %%3 = %3 echo %%~3 = %~3
すべての引数の値を参照する
すべての引数の値を参照するには「%*」を使用します。上記のバッチファイルに「echo %%* = %*」を付け加えて実行することで値の出力時にそれぞれの値が出力されるほか、最後の行にすべての引数をまとめた値が参照されます。