【问题标题】:Adapting forfiles command to look through folders instead of files调整 forfiles 命令以查看文件夹而不是文件
【发布时间】:2016-02-16 17:22:55
【问题描述】:

我编写了一个备份命令,用于删除E:\Backup\ldap 目录中超过两天的文件。我已经测试过了,效果很好。

(forfiles /p E:\Backup\ldap /s /d -2 /c "cmd /c echo @path >> E:\Backup\files_deleted_log_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt & cmd /c del /q @path")

我正在修改此命令,以便它查看指定目录中的顶级文件夹,如果文件夹及其内容超过两天,则递归删除该文件夹及其内容。

(forfiles /p E:\Backup\Sybase /d -2 /c "cmd /c if @isdir == true echo @path >> E:\Backup\files_deleted_log_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt & cmd /c if @isdir == true del /s /q @path")

我从上一个文件命令中取出了第一个/s,因为我不想递归搜索,我只想查看E:\Backup\Sybase 目录中顶级文件夹的最后修改日期。

我还添加了if @isdir == true 以确定文件是否为文件夹,并更新了删除命令以包含/s 以便执行递归删除。

但每次我执行命令时,都不会删除任何内容。

【问题讨论】:

    标签: batch-file recursion


    【解决方案1】:

    在使用RD递归删除目录之前,我使用if @ISDIR==TRUE判断文件是否为目录。

    (forfiles /p E:\Backup\Sybase /d -2 /c "CMD /C if @ISDIR==TRUE echo @PATH >> E:\Backup\files_deleted_log_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt & if @ISDIR==TRUE RD /Q /S @FILE")
    

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 2015-11-22
      • 2019-07-19
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多