やりたいこと検索

すべての引数を一括で取得する

 

目次

 

引数の確認

バッチファイルに引数を指定した場合、バッチファイル内で引数を利用したいときにはプレースホルダー「%?(?は1~9の数字)」を参照すればよいでしょう。引数の指定方法や利用方法は「%1,%2…%X(引数とプレースホルダー)」に詳しく解説しています。

例えば、以下のように引数を指定してバッチファイル「arg_test.bat」を実行した場合を考えてみましょう。

5つの引数「one」、「two」、「three」、「four」、「five」を指定しました。これらをバッチファイル「arg_test.bat」内で利用する場合はプレースホルダー「%1~%5」を使用します。「arg_test.bat」に以下のようなプログラムを記述して確認してみます。

以下は実行結果です。

「%1」~「%5」に一つずつ引数が格納されていることが分かります。

 

すべての引数を一括取得する

前章では、引数を「%?」を使用して一つずつ確認しましたが、「%*」を使用すればすべての引数をまとめて表示できます。前節のバッチファイルを以下のように書き換えます。

最後の行に「%*」の表示を加えました。以下、実行結果です。

このように、「%*」には指定したすべての引数が格納されているようです。

 

使い道としては、「for」コマンドを使用して引数を一つずつ読み込むときに「%*」を使用すると便利でしょう。以下は、「%*」を使用して引数を一つずつ呼び出したバッチファイルの例です。

4行目の「for」コマンドの「in ( )」の括弧内に「%*」として、すべての引数を指定しています。これを実行すると、以下のようになります。

このように、「for」コマンドの「%%f」に一つずつ順番に引数を代入してループ処理をさせることが可能です。

 

「%*」には「%0」は含まれない

ちなみに、「%0」には通常、実行したバッチファイル名が格納されていますが、「%*」には「%0」は含まれません。あくまでも引数のみが格納されています。すなわち、「%1~」です。これは、前節で示したように、ループ処理などを行うとき種類の違うバッチファイル名などが含まれていると不便だからと考えられます。

 

追記:本記事は、abc様からご質問を頂き追加しました。ありがとうございました。

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す