web-dev-qa-db-ja.com

検索マスクに複数のファイルタイプのforfilesを使用していますか?

次のコマンドは、1つのタイプのファイルで正常に機能します。

forfiles -p "C:abc\del" -s -m *.exe -d -70 -c "cmd /c echo @path"

複数のファイル拡張子でフィルタリングすることは可能ですか? *.exe*.dll*.xyz

19
mini998

思ったほど素敵ではありませんが、このワンライナーが役に立ちます。ただし、その場合、IN関数がファイルの選択を開始するため、*をフィルターとして使用できないことに注意してください。

for %G in (.exe, .dll, .xyz) do forfiles -p "C:abc\del" -s -m *%G -d -70 -c "cmd /c echo @path"

使用 this 参照用。

16
rene

1回のパスでディレクトリ構造をトラバースし、IFを使用して各ファイル拡張子をテストすることもできます。

forfiles -p c:\ -s  -c "cmd /c (if @ext==\"exe\" echo @path) & ( if @ext==\"dll\" echo @path) &  ( if @ext==\"xyz\" echo @path)"

内側の引用符をエスケープすることを忘れないでください\"dll\" instead of "dll"、コマンド全体が1つの文字列に含まれているため。

3
Farsee