rycho11
Goto Top

Per Batch Dateien löschen die älter als 2 Tage sind

Hallo
möchte auf der Platte d: auf der ich mehrere Verzeichnisse habe alle Dateien die älter als z.B. 2 Tage sind löschen, ich darf aber keine exe verwenden, das müsste eine reine bat Datei sein Kann mir jemand helfen
Gruß

Content-ID: 43770

Url: https://administrator.de/forum/per-batch-dateien-loeschen-die-aelter-als-2-tage-sind-43770.html

Ausgedruckt am: 23.12.2024 um 08:12 Uhr

Locke72
Locke72 06.11.2006 um 12:32:25 Uhr
Goto Top
Ich kenne nur das Tool DelAge32. Dazu muss eine Exe im Windows-Systemverzeichnis sein. Hier der Link --> http://home.mnet-online.de/horst.muc/win/indexd.htm Das Tool läuft bei uns sowohl auf Server als auch auf den Clients wunderbar und läßt sich über eine Batch ansteuern.
Escobar
Escobar 06.11.2006 um 12:37:05 Uhr
Goto Top
Hallo
möchte auf der Platte d: auf der ich
mehrere Verzeichnisse habe alle Dateien die
älter als z.B. 2 Tage sind
löschen, ich darf aber keine exe
verwenden, das müsste eine reine bat
Datei sein Kann mir jemand helfen
Gruß


ohjee. bitte lies dir doch die verwandten themen durch. die links direkt unter deinem beitrag heissen:

per Script / Batch Verzeichnisse / Dateien löschen die älter als z. B. 7 Tage alt sind
Löschen von Dateien, die älter als x Tage sind (Windows)
Dateien löschen, wenn bestimmte Datei älter als x Tage ist
Batch Datei: Alte Dateien nach gewissen Alter löschen

um nur einen teil zu nennen...

Esco
zpeedy
zpeedy 06.11.2006 um 12:53:46 Uhr
Goto Top
wir benutzen ebenfalls DelAge32.

funktioniert wunderbar.
rycho11
rycho11 06.11.2006 um 13:19:34 Uhr
Goto Top
> Hallo
> möchte auf der Platte d: auf der
ich
> mehrere Verzeichnisse habe alle Dateien
die
> älter als z.B. 2 Tage sind
> löschen, ich darf aber keine exe
> verwenden, das müsste eine reine
bat
> Datei sein Kann mir jemand helfen
> Gruß
>




ohjee. bitte lies dir doch die verwandten
themen durch. die links direkt unter deinem
beitrag heissen:

per Script / Batch Verzeichnisse / Dateien
löschen die älter als z. B. 7 Tage
alt sind
Löschen von Dateien, die älter als
x Tage sind (Windows)
Dateien löschen, wenn bestimmte Datei
älter als x Tage ist
Batch Datei: Alte Dateien nach gewissen
Alter löschen

um nur einen teil zu nennen...




Hallo
ich habe die alle gelesen, das Problem ist aber, dass ich das tool DelAge32.exe auf dem Server nicht instalieren darf und brauche eine .bat dazu

gruß
geTuemII
geTuemII 06.11.2006 um 13:33:25 Uhr
Goto Top
Hallo rycho11,

ich habe die alle gelesen, das Problem ist aber, dass ich das tool DelAge32.exe auf dem
Server nicht instalieren darf und brauche eine .bat dazu

in diesem Fall solltest vielleicht wenigstens den einen Thread nochmal genau lesen, nämlich ab da:

[edit]
Ich habe mir delAge gerade mal angesehen, bei dem Tool von "Installieren auf den Server" zu sprechen, halte ich für schwer übertrieben.
[/edit]

geTuemII
Biber
Biber 06.11.2006 um 13:46:02 Uhr
Goto Top
Jepp,

bin wie immer ganz geTuemII's Meinung. *rumschleim*

Alle Varianten, die ohne die DateAdd()/DateDiff()-Funktionalitäten von VBScript oder JScript mit native Batch rumeiern wollen, dürften aus meiner Sicht erst recht nicht auf einen produktiven Server.
Und Softmeisters Variante aus dem genannten Thread ist doch erste Wahl für Deinen Zweck, oder?

Außerdem wäre noch zu prüfen, ob denn eventuell andere mehr-oder-minder-Standard-Utilities aus dem Hause M$ auf dem Server sind, die sich für solche Zwecke nutzen ließen:
Insbesondere ForFiles.exe und/oder Robocopy.exe, die beide ja mit Tagen oder MinAge "rechnen" können.

Gruß
Biber
[Edit] P.S. @geTuemII
[edit]
Ich habe mir delAge gerade mal angesehen, bei dem Tool von "Installieren auf den Server" zu sprechen, halte ich für schwer übertrieben.
[/edit]
Na ja, es müsste zwar nur auf den Server kopiert werden, aber es würde dort ja täglich gelöscht werden... ist doch schon älter als 2 Tage... face-wink
[/Edit]
rycho11
rycho11 06.11.2006 um 21:39:12 Uhr
Goto Top
Jepp,

bin wie immer ganz geTuemII's Meinung.
*rumschleim*

Alle Varianten, die ohne die
DateAdd()/DateDiff()-Funktionalitäten
von VBScript oder JScript mit native Batch
rumeiern wollen, dürften aus meiner
Sicht erst recht nicht auf
einen produktiven Server.
Und Softmeisters Variante aus dem genannten
Thread ist doch erste Wahl für Deinen
Zweck, oder?

Außerdem wäre noch zu
prüfen, ob denn eventuell andere
mehr-oder-minder-Standard-Utilities aus dem
Hause M$ auf dem Server sind, die sich
für solche Zwecke nutzen ließen:
Insbesondere ForFiles.exe und/oder
Robocopy.exe, die beide ja mit Tagen oder
MinAge "rechnen" können.

Gruß
Biber
[Edit] P.S. @geTuemII
> [edit]
> Ich habe mir delAge gerade mal
angesehen, bei dem Tool von
"Installieren auf den Server" zu
sprechen, halte ich für schwer
übertrieben.
> [/edit]
Na ja, es müsste zwar nur auf den
Server kopiert werden,
aber es würde dort ja täglich
gelöscht werden... ist doch schon
älter als 2 Tage... face-wink
[/Edit]



ich habe eine frage gestellt und gehofft, dass mir jemand hilft wenn ich andere Werkzeuge benutzen dürfte hätte ich die frage nicht gestellt
bitte keine blöd… Ratschläge
Biber
Biber 06.11.2006 um 22:22:43 Uhr
Goto Top
Ich weiß nicht, was Du für aberwitzige Hoffnungen hast, mit native Batch irgendwelche Datumsberechnungen machen zu können.

Aber damit Du nicht nur blöde Antworten bekommst: wenn ich gar nichts in der Hand hätte, würde ich...
1. Excel öffnen, neue Arbeitsmappe anlegen.
2. Ins erste Feld eintippen: "06.11.2006"
3. Ins Feld rechts daneben "=A1-1" und ins Feld darunter eintippen: "=A1+1"
4. Ins Feld B2 eintippen ""=A2+1"
5. Die beiden Felder in der 2. Zeile markieren und (ca.) 1500x nach unten kopieren.
6. Diese Tabelle abspeichern als "c:\temp1\heutUndgestern.csv".

[Sieht dann so aus:
>type c:\temp1\heutUndGestern.csv
06.11.2006;05.11.2006
07.11.2006;06.11.2006
08.11.2006;07.11.2006
09.11.2006;08.11.2006
10.11.2006;09.11.2006
11.11.2006;10.11.2006
12.11.2006;11.11.2006
... [plus dreieinhalb weitere Meter ähnlicher Ergiebigkeit]
Nach dieser Vorarbeit machen es folgende zwei Batchzeilen:
::----snipp HauAllesWechAbVorvorgestern.bat
for /f "tokens=2 delims=;" %%i in ('findstr "^%date%" "c:\temp1\heutUndGestern.csv"') do @set "gestern=%%i"  
for /R "d:\" %%i in (*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"||@<b>ECHO </b>del /y "%%~dpnxi"   

Das fettgedruckte ECHO muss zum Scharfmachen raus.
Wenn Du es eleganter hinbekommst, lass von Dir hören.
rycho11
rycho11 07.11.2006 um 09:05:06 Uhr
Goto Top
danke biber werde ausprobierern
Biber
Biber 07.11.2006 um 11:00:04 Uhr
Goto Top
Solltest Du kein Excel einsetzen dürfen, kann ich Dir eine Kopie der "HeutUndgestern.csv" zumailen.

Gruß
Biber aka Die Bremer Mutter Theresa
rycho11
rycho11 07.11.2006 um 11:38:23 Uhr
Goto Top
Solltest Du kein Excel einsetzen dürfen,
kann ich Dir eine Kopie der
"HeutUndgestern.csv" zumailen.

Gruß
Biber aka Die Bremer Mutter Theresa

excel darf ich danke
geTuemII
geTuemII 07.11.2006 um 12:37:07 Uhr
Goto Top
ich habe eine frage gestellt und gehofft, dass mir jemand hilft wenn ich andere
Werkzeuge benutzen dürfte hätte ich die frage nicht gestellt
bitte keine blöd… Ratschläge

Sorry, rycho11,

aber das, was du hier als blöde Ratschläge abwertest, nennt sich andernorts Erfahrung. Ich frage mich schon einige Zeit, wie deine Rechte auf dem Server aussehen, wenn du keine Programme "installieren" (im Fall von delAge handelt es sich eher um kopieren) darfst, aber andererseits das recht hast, Dateien per Batch kommentarlos zu löschen.

Bei genauer Betrachtung ist ein Batch nicht anderes als ein Programm, nur mit dem Unterschied, daß es nicht kompliert ist.

geTuemII
Biber
Biber 07.11.2006 um 12:43:51 Uhr
Goto Top
@geTuemII

Das hab ich mich auch gefragt... es ist wahrscheinlich gar kein Server, sondern eine Hausaufgabe vom VHS-Kurs "MacGuywer-Batching II".

Und schreib nicht immer so verkürzt:
Zu kurz: "nur mit dem Unterschied, daß es nicht kompliert ist."
Ausführlich: "nur mit dem Unterschied, daß es weder kompliziert noch kompiliert ist."

face-big-smile
Biber
geTuemII
geTuemII 07.11.2006 um 12:48:56 Uhr
Goto Top
Und schreib nicht immer so verkürzt:
Zu kurz: "nur mit dem Unterschied, daß es nicht kompliert ist."
Ausführlich: "nur mit dem Unterschied, daß es weder kompliziert
noch kompiliert ist."

@the Great Beaver:
Ich werde versuchen, mich zu bessern, Meister.

Kotau, geTuemII
Biber
Biber 07.11.2006 um 12:56:20 Uhr
Goto Top
Kotau, geTuemII
Bei Deiner Größe brauchst Du doch eigentlich gar keinen Kotau machen..*g
geTuemII
geTuemII 07.11.2006 um 13:06:48 Uhr
Goto Top
@Biber:
Guut, daß wir drüber gesprochen haben.....
Biber
Biber 08.11.2006 um 09:26:06 Uhr
Goto Top
Moin rycho11,

wie geht das Testen voran? Schon erste Ergebnisse?

Gruß
Biber
rycho11
rycho11 08.11.2006 um 17:42:34 Uhr
Goto Top
Moin rycho11,

wie geht das Testen voran? Schon erste
Ergebnisse?

Gruß
Biber


Bin heute erst dazu gekommen leider komme ich nicht weiter bekomme:


C:\temp1>HauAllesWechAbVorvorgestern.bat

C:\temp1>for /F "tokens=2 delims=;" %i in ('findstr "^08.11.2006" "c:\temp1\heut
UndGestern.csv"') do @set "gestern=%i"
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
@echo %%~ti|find "%gestern%"
~dpnxi"

Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig
sind.
Syntaxfehler.

C:\temp1>
Biber
Biber 08.11.2006 um 18:05:04 Uhr
Goto Top
Jepp, rycho11,

ich seh es grad oben in dem Schnipsel...

Die 2.Zeile muss anders anfangen....statt:
alt/buggy: for /R "d:\" %i .....
neu/besser: for /R "d:\" %%i...

Ich sollte die Sachen doch mal testen, devor ich es poste..
Sorry.

Ich korrigiere es gleich oben in der Skizze.

Gruß
Biber
rycho11
rycho11 10.11.2006 um 13:03:17 Uhr
Goto Top
Jepp, rycho11,

ich seh es grad oben in dem Schnipsel...

Die 2.Zeile muss anders anfangen....statt:
alt/buggy: for /R "d:\" %i .....
neu/besser: for /R "d:\" %%i...

Ich sollte die Sachen doch mal testen, devor
ich es poste..
Sorry.

Ich korrigiere es gleich oben in der
Skizze.

Gruß
Biber



Hallo Biber

Funktioniert super danke,
und wie müsste die aussehen wenn auch alle Unterverzeichnisse die auch älter als 1 Tag sind gelöscht werden sollen
Biber
Biber 10.11.2006 um 13:34:56 Uhr
Goto Top
Moin rycho11,

dann ist es aber schon ein Dreizeiler...
::----snipp HauAllesWechAbVorvorgesternInclVerzeichnisse.bat
for /f "tokens=2 delims=;" %%i in ('findstr "^%date%" "c:\temp1\heutUndGestern.csv"') do @set "gestern=%%i"  
for /R "d:\" %%i in (*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"||@ECHO del /y "%%~dpnxi"  
for /D %%i in (d:\*.*) do @echo %%~ti|find "%date%"||@echo %%~ti|find "%gestern%"||@ECHO rd /s /q "%%i"   

[Löscht alle Dateien von Vorvorgestern und alle Verzeichnisse SAMT INHALT, wenn das Verzeichnis selbst älter ist als zwei Tage.]

Wie immer: das GROSS geschriebene ECHO rausnehmen, falls Testen das erwartete Ergebnis erbracht hat.
So zeigt der Schnipsel nur, was er tun würde.

Gruß
Biber