ワイルドカード - 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」にコピーします。