denny
Goto Top

Dateien in best. Verzeichnis suchen und nur die 3 Neuesten Dateien behalten.

Batch ?

Hallo !
Ich brauche ein Skript welches in einem Verzeichniss die drei neuesten Dateien behält und den Rest löscht.
Ist wahrscheinlich sehr trivial für Leute die sich mit Batch-dateien auskennen.
Unter Linux hätte ich das Skript auch schon locker fertig, aber unter Windows ist das eine echte Hürde für mich.
(Kann Batch das überhaupt ? / Ich habe keine Ahnung von VB)

Wäre super wenn mir jemand sein Wissen zur Verfügung stellt und etwas unter die Arme greift face-wink

MfG
denny

Content-Key: 44090

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

Printed on: April 19, 2024 at 19:04 o'clock

Member: Biber
Biber Nov 09, 2006 at 15:27:17 (UTC)
Goto Top
Moin denny,

Grundgerüst einer Skizze einer Batch-Lösung wäre folgende Zeile am CMD-Prompt:
for /f "skip=3 delims=" %i in ('dir /a-D /o-d /b *.*') do @echo Del  /y %~i  

Dieser Schnipsel würde Dir den "DEL /Y-Befehl auf alle Dateien außer den drei jüngsten anwenden.
Im aktuellen Verzeichnis.
Das kannst Du jetzt als Batch beliebig verfeinern, wenn Du es öfters mal brauchst:

- ein PopD und PushD drumherum, um in das Verzeichnis zu wechseln/zurückzuwechseln.
- den Pfad natürlich als Parameter und eventuell auch die ("Anzahl Erhaltenswerte").

Gruß
Biber
P.S. VBSkript halte ich für etwas überdimensioniert für so einen pilpul.
Member: hatzing
hatzing Nov 09, 2006 at 15:33:35 (UTC)
Goto Top
Da gibts auch ein kleines Tool, "delage", siehe unten!
Member: denny
denny Nov 09, 2006 at 15:35:28 (UTC)
Goto Top
Vielen dank für die schnelle Antwort.
das ist ja genau was ich brauche face-smile
Ich war nah dran. Aber knapp daneben ist auch vorbei.
Was bedeutet das letzte %~1 ?

MfG
denny
Member: denny
denny Nov 09, 2006 at 15:40:39 (UTC)
Goto Top
Danke !
Das Tool werde ich mir auch mal anschauen.
Hätte ich mal genauer geschaut, war nämlich
bei diesem Horst Schaeffer auf der Seite um mir sein Batch-Tutorial
einzuverleiben.
Member: Biber
Biber Nov 09, 2006 at 15:53:42 (UTC)
Goto Top
Moin denny,

Was bedeutet das letzte %~1 ?

Hm.. das %~i in diesem Fall bedeutet den "Wert der Zählvariablen ohne umschließende Anführungszeichen".
Siehe Hilfe zu FOR /?

Und wo Du es grad ansprichst, eigentlich muss es auch
for /f "skip=3 delims=" %i in ('dir /a-D /o-d /b *.*') do @echo Del  /y "%~i"  
... heißen, damit auch Dateien "mit Leerzeichen im Namen.xyz" keine Probleme machen.

Gruß
Biber
Member: denny
denny Nov 10, 2006 at 09:04:35 (UTC)
Goto Top
Hallo !
So ganz funktioniert das bei mir nicht.
Und zwar werden die Dateien nicht gelöscht wenn die Batch-Datei durchläuft.
Es sieht so aus als ob die "del" Anweisungen kein Prompt erhalten.
z.B steht bei der Ausgabe dann:
del /y "datei1.xxx"
del /y "datei2.xx"

usw.
Aber wie gesagt ohne Prompt.

Gebe ich dden Del-Befehl von Hand ein funktioniert es.

Gruß
Denny
Member: denny
denny Nov 10, 2006 at 09:10:35 (UTC)
Goto Top
Ich hab das echo am Ende weggenommen. Jetzt gehts.

MfG denny
Member: Biber
Biber Nov 10, 2006 at 09:15:32 (UTC)
Goto Top
Moin denny,

sorry, sonst schreib ich immer dazu
das "Echo" zum Scharfmachen herausnehmen..
...gestern hab ich es wohl mal vergessen.

[Ich poste hier ungern etwas, was tatsächlich Daten verändert oder löscht -
lieber ist mir, wenn der Schnipsel anzeigt, was er machen würde.....]

Grüße
Biber
Member: denny
denny Nov 10, 2006 at 09:24:28 (UTC)
Goto Top
Kein Thema. Ist auch richtig so.
Ich danke nochmal für die schnelle Hilfe.

MfG
denny