traller
Goto Top

Batch zum löschen von Ordner die älter als 14 Tage sind

Hallo,
schade, ich kann hier Batch zum löschen von Ordner die älter als 30 Tage sind wohl leider nix mehr zu posten, da ich dazu noch eine Frage habe.
ich habe nun folgenden Code übernommen. Die Ordner liegen auf einem Server 2008 R2 im Format "dat_JJJJ_MM_TT" vor.
FOR /F %%i IN ('dir /AD /O-N /B "D:\archive\dat_20????????" ^|more +14') DO (  
  RD /s /q "D:\archive\%%i"  
)

Diese Codezeile sagt nun folgendes: Gebe von D:\archive\ eine Liste nach absteigendem Namen (also von aktuell in die Vergangenheit) und überspringe die ersten 14 Ordner. Nehme diese Datenausgabe und lösche alle Ordner und Inhalte, die in dieser Liste genannt worden sind.

Ist das so korrekt? oder befindet sich in dem Code ein Syntax Fehler / Gedankenfehler??

Kann dieser Befehl in einer .bat gespeichert werden oder muss es .CMD sein?

Content-ID: 180854

Url: https://administrator.de/contentid/180854

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Skyemugen
Skyemugen 22.02.2012 um 07:22:58 Uhr
Goto Top
Aloha,

nun, du könntest dich selber davon überzeugen wozu dieser Thread, wenn du vor
  • RD noch ein echo setzt und es damit erst einmal nur testweise anschaust (wie Biber es bereits mit in dem besagten Thread per for /f %i in ('dir /ad /o-d /b x:\sichverz\200????? ^|more +30') do @echo rd /s /q "x:\sichverz\%i"" am CMD schrieb)
  • es in einer Testverzeichnisstruktur vorher abarbeitest

nunja hättest du gekonnt ...

Ja, sowohl Gedanke als auch Code sind korrekt (gut, man könnte auch direkt dat_20??_??_?? suchen, wobei das eh ein wenig verbugged ist *fg*) und nein, ob .bat oder .cmd spielt keine Rolle - wer mit der Zeit gehen will, nimmt .cmd, da .bat das ältere Format ist face-wink

greetz André
60730
60730 22.02.2012, aktualisiert am 18.10.2012 um 18:50:06 Uhr
Goto Top
Moin,

[OT]
Zitat von @traller:
Hallo,
schade, ich kann hier Batch zum löschen von Ordner die älter als 30 Tage sind wohl leider nix mehr zu posten, da ich dazu noch eine Frage habe.

Weißt, wie wir alle ganz gut miteinander auskommen können?

Grabe keine fremden ollen Kammellen aus, bevor du die nicht ausprobiert hast und stell eine (wie hier) eigene Frage zur Thematik.
Wobei das mit dem Link zur Ursprungsfrage schon gut gemacht ist.

Warum? das hat mehrere Gründe. u.a den dass nur diejenigen, die damals dabei waren überhaupt mitkriegen "könnten" das sich da was tut.
Deine "eigenen" ollen Kammellen hingegen darfst du gerne besuchen und dort machen, was du für richtig hälst.
(Das war eine Aufforderung)

Ist das so korrekt? oder befindet sich in dem Code ein Syntax Fehler / Gedankenfehler??
"Manchmal" - aber nur manchmal passieren dem Biber auch flüchtigkeitsfehler oder man könnte die Befehlskette theoretisch noch kürzer schreiben.

Grobe Schnitzer/Syntay oder Gedankenfehler in einer Batch unserem Meister B vorzuwerfen das ist hingegen grob fahrlässig.

[/OT]

Kann dieser Befehl in einer .bat gespeichert werden oder muss es .CMD sein?

Naja - hast du altsysteme, die wirklich nur Dos können? Und könnte dieser Code mal auf diesen Kisten landen? Wenn ja nimm auf jeden Fall cmd.


Gruß
Wolpi25
Wolpi25 22.02.2012 um 11:09:11 Uhr
Goto Top
moin,

ich habe das ganze mit robocopy umgesetzt. sieht in der batch dann so aus:

mkdir c:\erase
robocopy.exe c:\temp c:\erase /e /MOV /MINAGE:14 /R:1 /W:1 /NP /log:robocopy.log
rmdir c:\erase /s /q

vielleicht hilft dir das ja weiter.

mfg
wolpi