ワイルドカードの使い方

コマンドプロンプトでは同じようなファイル名をまとめて指定することができるワイルドカードと呼ばれる機能が利用できます。ここではコマンドプロンプトにおけるワイルドカードの使い方について解説します。

(Last modified: )

ワイルドカードとは

コマンドの中にはファイルをコピーする時に使用する COPY コマンドなどのようにファイル名などの引数を取るコマンドがあります。例えば 3 つのファイルを別のディレクトリにコピーしたい場合を考えてみると、 1 つ 1 つコピーする場合は 3 回 COPY コマンドを実行しなくてはなりません。

copy index.html c:\back
copy help.html c:\back
copy sitemap.html c:\back

3つのファイルならばこのように1つ1つコマンドを実行しても大丈夫ですが、もしファイルが 100 個もあった場合には大変です。このような場合にワイルドカードを使用すると便利です。

ワイルドカードは任意の文字を表す特殊な文字のことで、条件に一致する複数のファイルをまとめて指定する場合に使用されます。ワイルドカードには次の二つの文字が用意されています。

* 任意の長さの文字(0文字以上)
? 任意の1文字(0文字も可)

実際の使い方から見ていくと分かりやすいので、先ほどのファイルコピーをワイルドカードを使って書き直してみます。 3 つのファイルをコピーするにはワイルドカードを使えば次のように記述することができます。

copy *.html c:\back

先ほどは 3 つのファイルを 1 回ずつに分けてコピーする必要がありましたが、ワイルドカードを使えば 1 回のコマンド実行で 3 つのファイルコピーを行うことが可能になります。

ワイルドカードの仕組み

まずファイル名を記述するところにワイルドカードが記述されていた場合、その条件に一致するファイルが存在するかどうかが検索されます。例えば *.html と書かれていた場合、ワイルドカードの * は任意の長さの文字列を表しますので、 *.html に一致するファイル名とは「任意の長さの文字列」の後に .html が続くファイル名のことになります。

実際にどのようなファイル名が *.html に一致するのかは次の例を見て下さい。

a.html
index.html
helloworld.html

これらはいずれも任意の文字列の後に .html が付くファイル名です。逆にどのようなファイル名が *.html に一致しないのかは次の例を見て下さい。

a.txt
index.htm

これらはファイル名の最後が .html で終わっていませんので一致しません。

copy *.html c:\back のように実行すると、現在のディレクトリにあるファイルの中で *.html に一致するファイルに対してそれぞれ COPY コマンドが実行されます。結果として次のように 3 回 COPY コマンドが実行されます。

copy index.html c:\back
copy help.html c:\back
copy sitemap.html c:\back

このようにワイルドカードを使ってファイル名を指定することで、条件に一致する全てのファイルに対して同じコマンド実行を行わせることができます。

「*」と「?」の違いについて

* は 0 文字以上の任意の文字列に一致するワイルドカードです。例として a*b.txt と記述した場合、次のようなファイル名と一致します。

ab.txt
a0b.txt
aGTb.txt
a2084b.txt

0 文字でも一致する点に注意してください。

もう一つのワイルドカードである ? は任意の 1 文字に一致するワイルドカードです。例として a?b.txt と記述した場合、次のようなファイル名と一致します。

a0b.txt aMb.txt

このように ? の場合は文字の数を絞って一致するファイル名を指定したい場合に便利です。

ワイルドカードを使ったサンプル

では実際にワイルドカードを使ったファイルのコピーを試してみます。現在 c:\doc ディレクトリに次のようなファイルが保管されています。

ワイルドカードを使ったサンプル(1)

最初に a*b.txt に一致するファイルをだけを取得してみます。次のように実行してください。

dir a*b.txt

結果、次の 4 つのファイルが出力されました。

ワイルドカードを使ったサンプル(2)

今度は a?b.txt に一致するファイルをだけを取得してみます。次のように実行してください。

dir a?b.txt

結果、次の 1 つのファイルが出力されました。

ワイルドカードを使ったサンプル(3)

コマンドプロンプトからコマンドを実行する時にワイルドカードはよく使用しますので、使い方を覚えておいてください。

-- --

コマンドプロンプトにおけるワイルドカードの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。