私は、指定された拡張子を持つファイルのみのディレクトリ一覧を取得しようとしています。これはマッチとしてmetcal.**exe**
とmetcal.**exe1**
を返すことWindows /コマンドライン/ファイルを開くダイアログの正確なファイル拡張子とはどのように一致しますか?
C:\CODE\metcal>dir /b *.exe
metcal.exe
metcal.exe1
お知らせ:一見これは、しかし、この単純な例をチェックアウト、行う簡単なものだそうです。 pythonで
は、同じようなことが起こるファイル:
C:\CODE\metcal>dir /b *.py
metcal.py
metcal.pyc
通知は再びWindowsが*.py
が*.py
は、それが同様に.pyc
ファイルをキャプチャで始まる何かを取ることを決定しました。
正確に一致する拡張子のみを取得する方法はありますか?上記のpythonファイルの例では、私は次のように(*の.pyの代わりに正しい構文で明らかに)起こるしたい注意点としては
C:\CODE\metcal>dir /b *.py
metcal.py
それは思ったほど簡単ではありませんWindowsでマッチング。
*.exe
試合foo.exe, foo.exe1, foo.exeabcde
しかしないfoo.exe.bak
長い/短いファイル名に関連する類似したSO上の他の質問があります。 * .pyと* .pycの例では、名前のマングリング機構を導入すべきではありません。
**私はXPマシンとWin7マシンで実験しましたが、この動作はcmdプロンプトとファイルを開くダイアログで一貫していません。この矛盾した動作により、この問題はsomekindの設定に関連していると思われます。 **
は、Windowsプロンプト 'cmd.exe'コマンドを意味し、右? – aschipfl
与えられたパターンも8.3形式のファイル名に対してチェックされるので、 '* .exe'も' * .exe1'にマッチします。拡張子が3文字以下の場合、 '* .py'のように動作しているように見えますが、Windows 7 x64マシンでは* .pycのようなファイルは返されません。 'findstr'は次のようになります:' dir/B "* .exe" | findstr/L/E ".doc" – aschipfl
[正確な拡張子でファイルを取得するためのワイルドカード](http://stackoverflow.com/questions/20761052/wildcard-to-get-files-by-exact-extension)の可能な複製 –