コマンドプロンプトで複数のファイルを1つのコマンドで扱う場合、ワイルドカードを利用すると簡単に複数のファイルを対象に処理を行うことができます。
ワイルドカードとは、任意の文字を表現する特殊な記号のことをあらわします。
以下の2つのワイルドカードがあります。
記号 | 説明 | 文字列長さ |
* | 任意の長さの文字列を表現 | 0文字以上 |
? | 任意の1文字を表現 | 1文字 |
実際にワイルドカードを試してみます。
以下のようなファイルが存在している場合でワイルドカードを試してみます。
C:\wildcards>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 10:56 <DIR> . 2012/04/23 10:56 <DIR> .. 2012/04/23 10:56 4 aomori.dat 2012/04/23 10:56 4 aomori.txt 2012/04/23 10:56 4 hokkaido.dat 2012/04/23 10:56 4 hokkaido.txt 2012/04/23 10:56 4 iwate.dat 2012/04/23 10:56 4 iwate.txt 2012/04/23 10:55 4 kyoto.dat 2012/04/23 10:54 4 kyoto.txt 2012/04/23 10:55 4 osaka.dat 2012/04/23 10:55 4 osaka.txt 2012/04/23 10:54 4 tokyo.dat 2012/04/23 10:54 4 tokyo.txt 12 個のファイル 48 バイト 2 個のディレクトリ 16,726,036,480 バイトの空き領域
以下の実行例は、ワイルドカードを利用し *.txt とし、拡張子のみ指定し先頭のファイル名は任意の文字列としています。
よって以下のようにtxtファイルのみの一覧が表示されます。
C:\wildcards>dir *.txt ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 10:56 4 aomori.txt 2012/04/23 10:56 4 hokkaido.txt 2012/04/23 10:56 4 iwate.txt 2012/04/23 10:54 4 kyoto.txt 2012/04/23 10:55 4 osaka.txt 2012/04/23 10:54 4 tokyo.txt 6 個のファイル 24 バイト 0 個のディレクトリ 16,672,358,400 バイトの空き領域
以下の実行例は、tokyoを指定し拡張子をワイルドカード指定した時の実行例です。
C:\wildcards>dir tokyo.* ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 10:54 4 tokyo.dat 2012/04/23 10:54 4 tokyo.txt 2 個のファイル 8 バイト 0 個のディレクトリ 16,669,224,960 バイトの空き領域
以下の実行例は、kyoを含むファイルファイル一覧を指定した場合の実行例です。
C:\wildcards>dir *kyo* ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 10:55 4 kyoto.dat 2012/04/23 10:54 4 kyoto.txt 2012/04/23 10:54 4 tokyo.dat 2012/04/23 10:54 4 tokyo.txt 4 個のファイル 16 バイト 0 個のディレクトリ 16,663,015,424 バイトの空き領域
クエスチョンを利用すると任意の1文字を指定することができます。
以下のようなファイルが存在している場合でワイルドカードを試してみます。
C:\wildcards>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 11:12 <DIR> . 2012/04/23 11:12 <DIR> .. 2012/04/23 11:05 4 1A.txt 2012/04/23 11:06 4 1BA.txt 2012/04/23 11:06 4 1CAB.txt 2012/04/23 11:05 4 2A.txt 2012/04/23 11:06 4 2BA.txt 2012/04/23 11:06 4 2CAB.txt 6 個のファイル 24 バイト 2 個のディレクトリ 16,666,345,472 バイトの空き領域
最初をクエスチョンにししているので任意の文字になり、二文字目がAを指定し、拡張子は*を指定しています。
C:\wildcards>dir ?A.* ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 11:05 4 1A.txt 2012/04/23 11:05 4 2A.txt 2 個のファイル 8 バイト 0 個のディレクトリ 16,666,345,472 バイトの空き領域
先頭に?を利用し任意の1文字とし2文字目にCを指定しています。
C:\wildcards>dir ?C*.txt ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B891-081E です C:\wildcards のディレクトリ 2012/04/23 11:06 4 1CAB.txt 2012/04/23 11:06 4 2CAB.txt 2 個のファイル 8 バイト 0 個のディレクトリ 16,666,345,472 バイトの空き領域
上記の例では、dirをコマンドを利用しワイルドカードを利用したファイル一覧を表示しました。
dir部分をファイル削除コマンドのdelコマンドやファイルコピーコマンドのcopyコマンドなどに置き換えれば、複数ファイルを1つのコマンドラインで削除したりコピーしたりすることができます。
delコマンドでは、ファイルが消えてしまいますので、delコマンド+ワイルドカードを実行する前にdirコマンド+ワイルドカードを実行し、意図したファイルのみ対象となっているかを確認することをお薦めします。