• ベストアンサー

MS-DOSでファイルの一覧表示 「ワイルドカード」の利用方法

Windowsのコマンドプロンプトで、ファイル名が5文字のファイル一覧を 表示させたく、以下のコマンドを実行しましたが、 表示させたくないファイルも表示されてしまいました。 ワイルドカード(クエスチョン)の使い方が間違えているのでしょうか。 アドバイスをお願い致します。 ファイルの構成 1.txt 12.txt 123.txt 1234.txt 12345.txt 取得したいファイル 12345.txt 実行したコマンド dir /b ?????.txt 表示結果 1.txt 12.txt 123.txt 1234.txt 12345.txt OS:WindowsXP PRO

質問者が選んだベストアンサー

  • ベストアンサー
noname#223623
noname#223623
回答No.3

"dir /b"の出力からfindstrで抽出してみた。確認したのはWindows2000ですがXPでもできると思います。もっと簡単な方法があるかもしれないけど。 存在するファイル名のリスト  C:\test>dir /b  1.txt  12 34.txt  12.txt  123.txt  1234.txt  12345.txt  123456.txt  1234567.txt  abcde.txt [Pattern1] 文字種を問わず5文字.txtを抽出  C:\test>dir /b | findstr "^.....\.txt$"  12 34.txt  12345.txt  abcde.txt [Pattern2] 数字5文字.txtを抽出  C:\test>dir /b | findstr "^[0-9][0-9][0-9][0-9][0-9]\.txt$"  12345.txt [Pattern3] 空白以外の5文字.txtを抽出  C:\test>dir /b | findstr /r /c:"^[^ ][^ ][^ ][^ ][^ ]\.txt$"  12345.txt  abcde.txt 他にも存在するファイル名と抽出するファイル名で条件で変わりますが、質問の例だったらPattern1でできます。うまくいかない場合は補足してください。 参考URL: @IT - findstrで正規表現を検索する

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/511findstr/findstr.html
HaruXP
質問者

お礼

FINDSTRで正規表現を利用する。。。。 こんな回避方法があったんですね。 すばらしい回答を早急にいただき、まことにありがとうございます! Pattern1のやり方で実現させたいと思います。 まことにありがとうございました。

その他の回答 (2)

  • S-Fuji
  • ベストアンサー率36% (592/1624)
回答No.2

元々厳密な処理を行っていないようです。 以下を参照してください。 http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/HowToUnix/2-2.html 「正規表現」が使えると良いのですがね。

  • wolf03
  • ベストアンサー率22% (241/1086)
回答No.1

仕様ですが・・・ ?????なら5文字以内の扱いとなりますから

HaruXP
質問者

補足

?????は、5文字以内が仕様だったのですか・・・ 存じておりませんでした。勉強になります。 では、ファイル名が5文字のファイルを表示させるには、 どのように指定したらよいのでしょうか。 ご存知でしたらアドバイスをお願い致します。

関連するQ&A