如何使用forfiles远程删除x天以前的子文件夹

时间:2015-11-05 05:58:03

标签: batch-file cmd command-prompt

我需要远程删除超过7天的子文件夹,能够找到这样的语法,但它的作用是循环遍历子文件夹并删除7天以内的文件。不知道如何删除xFOLDER中超过7天的子文件夹?

PushD "\\IP ADDRESS\FOLDERA\FOLDERB\FOLDERC\FOLDERD\xFOLDER\" & ("forfiles.exe" /s /m "." /d -7 /c "cmd /c del @file") & PopD

1 个答案:

答案 0 :(得分:0)

你几乎就在那里,只需要改变一些事情:

  • /S没有forfiles,因为您只对xFOLDER的直接子目录感兴趣;
  • 搜索掩码需要从.更改为*;
  • 要跳过所有枚举文件,需要进行检查(使用if); forfiles提供变量@isdir,表示当前项目是文件(FALSE)还是目录(TRUE);
  • del删除文件,因此要删除目录,需要rmdir; switch /S允许删除非空目录,switch /Q可以阻止任何提示是否删除;

所以这个修改过的代码应该按照你想要的那样做(出于易读原因写成多行):

PushD "\\IP ADDRESS\FOLDERA\FOLDERB\FOLDERC\FOLDERD\xFOLDER\" ^
  & ("forfiles.exe" /P "*" /D -7 /C "cmd /C if @isdir==TRUE rmdir /S /Q @path") ^
  & PopD