我需要完成我的批处理脚本。我有一个路径 C:\Users\Mahmo03S\Shaban。在该路径中有几个子文件夹,例如。安思。在子文件夹 Ansys 中有更多的子文件夹 = 它是一个文件夹树。如果文件夹和子文件夹中的每个文件都超过 3 天,我的批处理脚本需要删除 Ansys 文件夹。如果在过去 3 天内仅修改了 Ansyn 中的一个文件,则 Ansys 不会发生任何事情。我试图做出一个可靠的解决方案,但是:批处理文件删除了 Ansys 目录中的一个子子文件夹,因为子子文件夹中的文件自 3 天以来没有被修改。
我有 3 个批处理文件来完成这项任务。
脚本.bat
@echo off
setlocal enableextensions
pushd C:\Users\Mahmo03S\Desktop\Shaban
set /p check="Select a date:"
Rem When prompted with above line type the date 3 days ago.
forfiles /c "cmd /c (IF @isdir==TRUE call C:\Users\Mahmo03S\Desktop\Search.bat "@path" "%check%")"
popd
搜索.bat
set del=TRUE
forfiles /p %1 /d -%2 /s /m * /c "cmd /c (IF @isdir ==TRUE call C:\Users\Mahmo03S\Desktop\DeleteFolders.bat "@path" "%check%" "%del%")"
删除文件夹.bat
set del=FALSE
if %del%==FALSE (rmdir /S /Q %1)
问题是:我在文件夹 Ansys 中有一个子文件夹(例如 hello)。在 hello 文件夹中,每个文件都超过 3 天。该脚本会删除不应执行的 hello 文件夹。如果文件夹中的每个文件都超过 3 天,它应该只删除 Ansys。如果过去 3 天内仅修改了 Ansys 文件夹中的一个文件,则不应删除 Ansys 文件夹中的任何内容。
我制作了批处理文件,因此如果每个文件都超过 3 天,它会删除 Ansys 文件夹。但它不应该仅仅因为其中的文件超过 3 天就删除子子文件夹。
我怎样才能做到这一点?