Programming Field

ワイルドカード - DOS/コマンドプロンプト コマンド一覧

ワイルドカードとは「*」と「?」の文字で、一般的な文字列(アルファベットや数字など)と組み合わせることで、ファイルを検索する際などにファイル名の一部が分からない、あるいは同じパターンのファイル一覧を取得したい時などに用います。

文字の種類

?
「任意の1文字」を表します。例えば「ho?e」であれば「hoge」「hole」「home」「ho9e」「ho_e」などが一致します。
[MS-DOS, Windows 95/98/Me] ファイル名において「ho?e」は「ho.e」も一致しますが、「hoge.dt?」は「hoge.dt」に一致しません。ただし、「hoge?」は「hoge」に一致します。
[Windows NT/XP以降?] ファイル名において「ho?e」では「ho.e」に一致しませんが、「hoge.dt?」は「hoge.dt」に、「hoge?」は「hoge」に一致します。
*
「長さ0以上の任意の文字列」を表します。例えば「win*」は「win」「wind」「windows」「wing」「wins」「win.com」などが一致します。

なお、簡易的に正規表現で置き換えると「?」→「.」、「*」→「.*」となります。

注意点など

サンプル1

dir *. /w

拡張子の無いファイルすべてを表示します。これには「.」を含まないディレクトリ名も含まれます。

サンプル2

for %1 in (*.*_) do expand.exe %1

Forコマンドを用い、拡張子が「_」で終わるファイルすべてに対して、それらを1つずつ引数にして「expand.exe」の実行を行います。

サンプル3 (バッチファイル)

md \Backup
copy *.in? \Backup

拡張子の最初の2文字が「in」でかつ拡張子の文字数が3文字となるファイル(例:「setup.ini」「driver.inf」)すべてをディレクトリ「\Backup」にコピーします。