質問: Windows 7環境で、MS-DOSのバッチファイルを作っています。 MS-DOS上でのワイルドカードの扱いに疑問がわいたので質問させてください。 C:\直下に TEST - 01、TEST - 02、...、TEST - 12 というディレクトリを作ったのですが、 dir *04* のコマンドで TEST - 04 TEST - 09 の両方がヒットしてしまいます。 TEST - 04のみヒットすることを期待したのですが、09のほうまでヒットするのはなぜでしょうか。 以下、テキスト貼り付けですが、画面のコピーです。 C:\>dir *04* ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は ****-**** です C:\ のディレクトリ 2013/08/03 22:40 TEST - 09 2013/08/03 22:39 TEST - 04 0 個のファイル 0 バイト
回答: >私は前方一致と後方一致で二回検索する方法しか思い当たりませんが、ほかに良い方法はございますでしょうか。 目的に合えば良いんじゃないでしょうか。 MS-DOSのコマンドを駆使したのは20年ほど前のことなので殆ど覚えていません。 MS-DOSコマンドでもループ処理ができたと思います。 目的のディレクトリから順次フォルダ名を読み込んで処理を判定する手法が有ったように思いますのでコマンド一覧から動作を確認して利用されると良いでしょう。 尚、別の手法として、C++等でショートプログラムを書かれるのも考え易い方法ではないでしょうか?