删除早于x天的目录使用Windows批处理排除1个目录

时间:2014-05-19 02:50:30

标签: windows batch-file

set dump_path=D:\Test
set max_days=7
forfiles /p %dump_path% /d -%max_days% /c "cmd /c if not @path==D:\path\i\want\to\ignore rd /S /Q @path"

我想删除今天不到7天的所有文件夹和文件,并且有一个我希望它跳过的目录, 我已经测试了上面的代码,但它不起作用,任何人都可以帮忙,尤其是'if not'无法执行吗?

1 个答案:

答案 0 :(得分:0)

if /i not @path==0x22D:\path\i\want\to\ignore0x22 rd ....

要使它工作,你需要

  • 指示if命令是否比较不区分大小写或确保大小写完全匹配
  • 等式测试的两侧必须匹配,因此,左侧@path返回带引号的字符串,右侧也必须引用。 0x22是引号字符的十六进制代码,不能直接包含,因为它会与/ c" cmd / c ..."
  • 周围的引号冲突