Batch-Datei zum löschen von Unterordnern im Verzeichnis, wenn alle Dateien älter als 3 Tage

Muss ich meine komplette batch-Skript.
Ich habe einen Pfad C:\Users\Mahmo03S\Shaban. In diesem Pfad gibt es mehrere Unterordner, zB. Ansys.
In den Unterordner Ansys gibt es sogar mehrere Unterordner = seine ein foldertree.
Mein batch-Skript muss zum löschen der Ansys-Ordner, wenn alle Dateien in dem Ordner und in den Unterordnern, die älter als 3 Tage. Wenn nur eine Datei in Ansyn geändert in den letzten 3 Tagen, dann sollte nix passieren mit Ansys.
Ich habe versucht, eine solide Lösung, aber:
Die batch Datei löscht eine subsubfolder in Ansys-Verzeichnis, da die Dateien in der subsubfolder nicht verändert seit 3 Tagen.

Bekam ich 3 batch-Dateien zu tun die Aufgabe.

Skript.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

Suchen.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%")"

DeleteFolders.bat

set del=FALSE
if %del%==FALSE (rmdir /S /Q %1)

Das problem ist:
Ich habe eine subsubfolder (z.B. Hallo) in den Ordner Ansys. In der hello-Ordner jede Datei, die älter ist als 3 Tage. Das Skript löscht die Ordner Hallo, die er nicht tun sollte. Es sollte nur löschen, Ansys wenn JEDE Datei im Ordner, die älter als 3 Tage. Wenn nur eine Datei verändert wird, Ansys Ordner für die letzten 3 Tage nichts in der Ansys-Ordner gelöscht werden sollten.

Machte ich die batch-Datei, so löscht Sie die Ansys-Ordner, wenn jede Datei, die älter ist als 3 Tage. Es sollte aber nicht löschen subsubfolder nur weil die Dateien älter als 3 Tage.

Wie kann ich das tun?

InformationsquelleAutor user2439427 | 2013-09-12
Schreibe einen Kommentar