使用以下命令可以正常处理一种类型的文件,
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"
参考了这个。
可以通过一次遍历目录结构并使用IF
测试每个文件扩展名来实现。
forfiles -p c:\ -s -c "cmd /c (if @ext==\"exe\" echo @path) & ( if @ext==\"dll\" echo @path) & ( if @ext==\"xyz\" echo @path)"
请记住将内部引号转义为 \"dll\"
而非 "dll",因为整个命令都在单个字符串中。