Batch file 调整forfiles命令以查看文件夹而不是文件
我编写了一个备份命令,用于删除Batch file 调整forfiles命令以查看文件夹而不是文件,batch-file,recursion,Batch File,Recursion,我编写了一个备份命令,用于删除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") 我正在修改此命令,以便它查看指定目录中的顶级文件夹,并在文件
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")
我从前面的file命令中取出了第一个/s
,因为我不想递归搜索,我只想查看E:\Backup\Sybase
目录中顶级文件夹的最后修改日期
(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")
我还添加了if@isdir==true
以确定文件是否为文件夹,并更新了delete命令以包含/s
,以便执行递归删除
但每次执行命令时,都不会删除任何内容。在使用
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")