Jump to content

Ordner älter x (inkl. Inhalt) mit Robocopy löschen


Direkt zur Lösung Gelöst von testperson,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo, wie der Titel schon sagt, möchte ich ein Verzeichnis bereinigen, indem ich mittels Script die enthaltenen Unterordner inkl. Inhalt ab einem best. Alter lösche.

 

 

hier mein Kot:

mkdir C:\Test\Ordner\Temp

robocopy C:\Test\Ordner C:\Test\Ordner\Temp /E /MOVE /MINAGE:30 /R:1 /W:1

rmdir C:\Test\Ordner\Temp /s /q

Im Prinzip verschiebe ich alles älter 30 Tage in einen Temporären Ordner und lösche diesen. Mit Dateien geht es, aber ich würde es gern auf Ordner anwenden.

 

Ist mein Vorhaben mit Robocopy umzusetzen?

 

 

Danke!

 

MfG Meiner

Link zu diesem Kommentar

Moin,

 

ohne es näher geprüft zu haben, würde ich vermuten, dass du das zumindest nicht in einem Schritt hinbekommst.

 

Wenn meine Annahme zutrifft, dass /MINAGE sich nur auf Dateien bezieht, dann könntest du in einem zweiten Schritt nach dem Verschieben der Dateien alle leeren Ordner aus der Quelle löschen. Dazu habe ich in diesem Internet die folgende Zeile gefunden (ungetestet):

for /f "delims=" %%d in ('dir /s /b /ad %1 ^| sort /r') do rd "%%d" 2>nul

Gruß, Nils

Link zu diesem Kommentar
  • Beste Lösung

Hi,

 

evtl. kannst du da auch was mit "forfiles" machen.

forfiles /?

FORFILES [/P Pfadname] [/M Suchmaske] [/S]
         [/C Befehl] [/D [+ | -] {dd.MM.yyyy | TT}]

Beschreibung:
    Wählt eine Datei (oder einen Satz von Dateien) und führt einen
    Befehl auf dieser Datei aus. Dies ist für Batchaufträge hilfreich.

Parameterliste:
    /P    Pfadname      Bestimmt den Pfad, auf dem die Suche gestartet
                        wird. Standardordner ist der zurzeit
                        verwendete Ordner (.).

    /M    Suchmaske     Sucht nach Dateien laut einer Suchmaske.
                        Die Standardsuchmaske ist "*".

    /S                  Durchsucht Unterverzeichnisse
                        rekursiv, wie z. B. "DIR /S".

    /C    Befehl        Bestimmt den für jede Datei auszuführenden Befehl.
                        Befehlszeichenfolgen sollten in doppelten
                        Anführungszeichen eingeschlossen werden.

                        Der Standardbefehl ist "cmd /c echo @file".

                        Folgende Variablen können in der
                        Befehlszeichenfolge verwendet werden:
                        @file    - Zeigt den Namen der Datei an.
                        @fname   - Zeigt den Dateinamen ohne
                                   Erweiterung an.
                        @ext     - Zeigt nur die
                                   Dateierweiterung an.
                        @path    - Zeigt den vollständigen Dateipfad an.
                        @relpath - Zeigt den relativen
                                   Dateipfad an.
                        @isdir   - Zeigt "TRUE" an, falls ein Dateityp ein
                                   Verzeichnis ist und "FALSE" für Dateien.
                        @fsize   - Zeigt die Dateigröße in Bytes
                                   an.
                        @fdate   - Zeigt das letzte Änderungsdatum
                                   der Datei an.
                        @ftime   - Zeigt die letzte Änderungszeit der
                                   Datei an.

                        Verwenden Sie Hexadezimalcode für Zeichen
                        im Format 0xHH, um spezielle Zeichen in der
                        Befehlszeile miteinzubeziehen (z. B. 0x09 für
                        Tabbstop). Interne Befehle für cmd.exe
                        sollten auf "cmd /c" folgen.

    /D    Datum         Wählt Dateien mit einem Änderungsdatum größer
                        oder gleich (+), oder weniger oder gleich
                        (-), das angegebene Datum mit Format
                        "dd.MM.yyyy"; oder wählt Dateien, dessen letztes
                        Änderungsdatum größer oder gleich (+) dem
                        heutigen Datum plus "tt" Tagen oder oder weniger
                        oder gleich (-) heute minus "tt" Tagen. Gültige
                        Werte für "tt" sind Zahlen zwischen 0 und 32768.
                        Ohne Angabe wird "+" standardmäßig
                        verwendet.

    /?                  Zeigt diese Hilfe an.

Beispiele:
    FORFILES /?
    FORFILES  
    FORFILES /P C:\WINDOWS /S /M DNS*.*
    FORFILES /S /M *.txt /C "cmd /c type @file | more"
    FORFILES /P C:\ /S /M *.bat
    FORFILES /D -30 /M *.exe
             /C "cmd /c echo @path 0x09 wurde vor 30 Tagben geändert"
    FORFILES /D 01.01.2001
             /C "cmd /c echo @fname ist seit dem 01.01.2001 neu"
    FORFILES /D +28.7.2016 /C "cmd /c echo @fname ist seit heute neu"
    FORFILES /M *.exe /D +1
    FORFILES /S /M *.doc /C "cmd /c echo @fsize"
    FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"


Gruß

Jan

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...