以下命令适用于一种类型的文件,
forfiles -p "C:abc\del" -s -m *.exe -d -70 -c "cmd /c echo @path"
是否可以通过多个文件扩展名进行过滤?*.exe
, *.dll
, *.xyz
?
没有我希望的那么好,但这个 oneliner 可以提供帮助。但是请注意,您不能使用 * 作为过滤器,因为在这种情况下 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\" instead of "dll"
,因为整个命令都在一个字符串中。