6 ワイルドカード
バッチファイルでは、ファイルやディレクトリを扱うことが多いと思いますが、
そこで使用できるワイルドカードについて説明しておきます。
コマンドプロンプトでは、
ファイル名やディレクトリの指定に ワイルドカード として次の 2 種類の特殊文字 (半角文字) を使うことができます18。
*
: 0 文字以上の任意の文字列にマッチ (適合) する
?
: 空文字または 1 文字の任意の文字にマッチ (適合) する
例えば、カレントディレクトリに、
test.bat, test2.c, test2.exe, test3.bat, test4
というファイルがあったとすると、
- test?.bat : test.bat と test3.bat がマッチ
- test2.* : test2.c と test2.exe がマッチ
- test?.* : 上の 5 つのファイルすべてがマッチ
することになります。
なお、MS-Windows では「.」で始まる名前のファイルは作れるのですが、
「.」で終わる名前のファイルを作ることはできず、
例えば test4. という名前のファイルを作ってもそれは test4 という名前になるので、
ファイル名としては test4 と test4. とは実質同じことになり、
よって test4 は「test4.」として上の test?.* というパターンにマッチすることになります。
ワイルドカードは、主に複数のファイルを指定できるコマンド、
例えば copy コマンド (詳しくは 7 節参照) で
> copy test?.* ..\
trash
のように使いますが、この場合は上の 5 つのファイルが ..\
trash というディレクトリにコピーされることになります19。
他のワイルドカードの使用例を示すと、
- *abc* : 名前に abc という文字列が含まれるファイル名にマッチ
- *.bat : すべてのバッチファイル名にマッチ
- test* : test で始まるすべてのファイルにマッチ
- * : すべてのファイル名にマッチ
- ?????.??? : [名前].[拡張子] の名前の部分が 5 文字以下、
[拡張子] の部分が 3 文字以下のファイル名等にマッチ
のようになります。
竹野茂治@新潟工科大学
2014年5月2日