meinerjunge 10 Geschrieben 28. Juli 2016 Melden Teilen Geschrieben 28. Juli 2016 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 Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 28. Juli 2016 Melden Teilen Geschrieben 28. Juli 2016 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 Zitieren Link zu diesem Kommentar
Beste Lösung testperson 1.708 Geschrieben 28. Juli 2016 Beste Lösung Melden Teilen Geschrieben 28. Juli 2016 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 Zitieren Link zu diesem Kommentar
meinerjunge 10 Geschrieben 28. Juli 2016 Autor Melden Teilen Geschrieben 28. Juli 2016 (bearbeitet) Danke "forfiles" war der richtige Hinweis. MfG Meiner ps. Ich muss noch den richtigen Umgang mit der Suchfunktion üben. http://www.mcseboard.de/topic/194308-ordner-nach-datum-mit-batchbefehl-l%C3%B6schen/ bearbeitet 28. Juli 2016 von meinerjunge Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 28. Juli 2016 Melden Teilen Geschrieben 28. Juli 2016 Moin, niedlich auch der Tippfehler "Tagben" in der Online-Hilfe. Sogar in Windows 10 noch so drin. Die Grammatik bei der Erläuterung des Schalters /D ist zumindest keine deutsche. Gruß, Nils Zitieren Link zu diesem Kommentar
Gulp 260 Geschrieben 28. Juli 2016 Melden Teilen Geschrieben 28. Juli 2016 Für sowas benutze ich delage32 von Horst Schaeffer, das ist sauschnell, lässt sich prima scripten und macht kein File-/Directorylisting, funktioniert also auch bei übervollen Ordnern ........ Delage32 findet sich dort --> http://www.horstmuc.de/wbat32d.htm Grüsse Gulp Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.