从子文件夹中删除早于特定日期的专门命名的子文件夹

帕森斯

我有一些网络驱动器,其文件和子文件夹的时间早于特定日期。

为了删除子文件夹,我倾向于使用类似以下的内容(将网络共享映射到R:之后): forfiles /P "R:" /D -200 /C "cmd /c IF @isdir == TRUE rd /S /Q @path" >> %backuplog% 2>&1

但是,我有一个文件夹结构,现在填充了名称无法预测的文件夹(因此,我无法非常轻松地直接映射它们),例如

R:/423423423/SIS.d/ 
R:/543543534/SIS.d/ 
R:/765465477/SIS.d/

R:中的每个子文件夹都有许多文件和文件夹,但是我想从其中删除所有早于6个月的名为SIS.d的子文件夹。是否可以修改forfiles命令来执行此操作?如果没有,任何人都可以提供其他方法的帮助吗?

我可以使用类似的东西/m */SIS.d/*.*吗?

谢谢,菲尔

莫菲

是的,尽管名称如此,仍可以对该任务使用命令FORFILES

%SystemRoot%\System32\forfiles.exe /P "R:\" /M "SIS.d" /S /D -200 /C "%ComSpec% /C if @isdir == TRUE rd /S /Q @path >>"%backuplog%" 2>&1" 2>nul

档案搜寻

  • R:由于选项在驱动器的根目录中/P "R:\"
  • 及其所有子目录(由于选择) /S
  • 对于匹配不区分大小写的掩码的条目(文件或目录),SIS.d因为/M "SIS.d"
  • 由于/D -200根据上次修改日期而超过200天

并由于选择/C "..."命令行而对找到的每个条目执行

C:\Windows\System32\cmd.exe /C if @isdir == TRUE rd /S /Q @path >>"%backuplog%" 2>&1

%backuplog%也可以在执行命令之前进行forfiles扩展并希望扩展为完全限定的文件名,而无需在命令行中附加多余的双引号。

cmd.exe如果with传递给命令的字符串等于string,则首先运行命令IF进行区分大小写的比较forfiles@isdirTRUE

在此字符串比较条件为真,cmd.exe运行命令RD悄悄地用与所引用的全限定目录名指定的所有子目录和文件,删除目录@path和传递forfilescmd.exe永远双引号括起来。

命令RD的标准输出和错误输出重定向到名称已分配给环境变量的文件backuplog命令RD从不输出使用选项和的内容处理STDOUT如果由于各种原因无法完全删除目录,RD将输出一条错误消息来处理STDERR因此,仅使用代替就足够/S/Q2>>"%backuplog%">>"%backuplog%" 2>&1

完全删除当前正在处理的目录会forfiles导致产生一条错误消息,forfiles以处理STDERR该错误消息2>nulforfiles命令行末尾被附加抑制

注意: Windows上的目录分隔符是\(反斜杠),而不是/(正斜杠)。/在Windows上用于选项,因为在此命令行上可以很好地看到它。因此,请勿通过使用错误/而不是使用\文件和目录参数字符串编写依赖于Windows文件系统内核功能自动更正的命令行

为了了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。

  • cmd /?
  • forfiles /?
  • if /?
  • rd /?

另请参阅有关使用命令重定向运算符的Microsoft文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

配置文件删除文件夹(如果存在子文件夹并且包含早于特定日期的文件)

成功同步目录后,WinSCP删除早于特定日期的特定文件夹中的源文件

如何在 UNIX 中创建新文件夹并将早于特定日期的“.log”文件从某个位置复制到此文件夹?

超过特定日期的文件列表(包括子文件夹中的文件)

检查并删除文件夹和子文件夹中的特定文件

更改WinSCP时间戳,从指定日期命名的文件夹中获取文件

使用powershell从特定日期删除文件夹内的文件

从子文件夹中删除同名文件

使用 Powershell 删除多个特定命名文件夹和其他带有文件的子文件夹

删除早于特定日期的文件,并排除文件夹下的直接文件

mv 来自特定日期的不同文件夹中的多个文件

如何选择在 linux 文件夹中特定日期创建/修改的文件?

从子文件夹中删除.htpasswd保护

如何从递归目录中提取专门命名的文件夹,然后删除其他文件夹?

通过日期python重命名文件夹中的文件

为文件夹和子文件夹中的所有文件设置命名空间

在文件夹,子文件夹和多个文件中递归查找和重命名

python:通过子文件夹名称重命名子文件夹中的文件

批。批量重命名文件夹和所有子文件夹中的文件

使用子文件夹标签重命名子文件夹中的文件

从移入随机文件夹的日期开始,删除早于x天的文件

删除所有子文件夹和文件,但父文件夹中的特定扩展名除外

文件夹/子文件夹的大小然后删除

在Python中从子文件夹导入

重命名不同子文件夹中的文件

删除文件夹中不包含子文件夹的文件夹中的旧文件

删除子文件夹中的文件并删除空文件夹

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

从子文件夹中删除文件但要排除一个子文件夹-批处理文件