次のコマンドは、1つのタイプのファイルで正常に機能します。
forfiles -p "C:abc\del" -s -m *.exe -d -70 -c "cmd /c echo @path"
複数のファイル拡張子でフィルタリングすることは可能ですか? *.exe
、*.dll
、*.xyz
?
思ったほど素敵ではありませんが、このワンライナーが役に立ちます。ただし、その場合、IN関数がファイルの選択を開始するため、*をフィルターとして使用できないことに注意してください。
for %G in (.exe, .dll, .xyz) do forfiles -p "C:abc\del" -s -m *%G -d -70 -c "cmd /c echo @path"
使用 this 参照用。
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つの文字列に含まれているため。