次のコマンドは、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"
これを参考にしました。
ディレクトリ構造を 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"
コマンド全体が単一の文字列になっているため、内側の引用符をエスケープすることを忘れない でください。