wudu80
Goto Top

Dateien löschen, die eine bestimmte größe unterschreiten

Hallo,

seit gestern habe ich mich ein bisschen in Batch eingelesen. Ist doch mächtiger als ich dachte.
Aber leider reicht mein wissen am Tag 2 immer noch nicht aus face-sad
Wie kann ich ich einen Testordener alle wav Dateien löschen die kleiner als 100 KB sind ?


Mfg

Content-Key: 127352

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

Printed on: April 25, 2024 at 15:04 o'clock

Member: bastla
bastla Oct 18, 2009 at 10:01:43 (UTC)
Goto Top
Hallo Wudu80!

Etwa so:
for %i in ("D:\Alle meine WAV\*.wav") do @if %~zi lss 100000 @echo del "%i"
Das "echo" vor dem "del" dient dem gefahrlosen Testen (da der Löschbefehl so nur angezeigt wird), und um einen Batch daraus zu machen siehe Bibers Hinweise in Deinem vorigen Thread ...

Grüße
bastla
Member: Biber
Biber Oct 18, 2009 at 10:21:36 (UTC)
Goto Top
<OT>
Moin Wudu80, Moin bastla,

Zitat von @Wudu80:
---
seit gestern habe ich mich ein bisschen in Batch eingelesen. Ist doch mächtiger als ich dachte.
Aber leider reicht mein wissen am Tag 2 immer noch nicht aus face-sad

Warte ab - der Tag 2 ist ja erst halb rum...face-wink

Bitte versuche (auch wenn die Syntax natürlich erstmal gewöhnungsbedürftig aussieht) mit dieser Zeile und Varianten davon am CMD-Prompt vertraut zu werden.

Wenn du jetzt zu schnell eine (funktionierende) Zeile in irgendeiner Batchdatei "HauWechAlleZuKleinenWavs.cmd" abspeicherst, ohne das Prinzip verstanden zu haben...
...dann ist das Risiko eines späteren "Hoppla" all in all höher.
Besonders bei DEL-Befehlen.
Ich weiss ja nicht, wieviel Aufwand das Erzeugen einer deiner WAV-Dateien bedeutet.
Ein DEL von ein paar 10000 WAV-Dateien auch in einer FOR-Anweisung dauert jedenfalls nur Sekunden.

Grüße
Biber
[Edit]
kann man die Unterordner auch noch einbeziehen ?
Hat er mit diesen Befehl bei mir jetzt nicht gemacht.
Stand ja auch nicht in deiner Anforderung.
Ich glaube, du hättest von bastla nicht gewünscht, dass er auch in Unterordnern alles löscht, wenn du nichts davon geschrieben hättest.

Verwende STATT "for %i in ("D:\Alle meine WAV\*.wav") DO ..."
STATTDESSEN for /r "D:\AlleMeine Wavs" %i in ("*.wav") DO ....
[/Edit]
[Edit2] Überzähliges Anführungszeichen entfernt. Siehe bastlas Korrektur unten. Thx @bastla. [/Edit]
</OT>
Member: Wudu80
Wudu80 Oct 18, 2009 at 10:23:53 (UTC)
Goto Top
Hallo,

kann man die Unterordner auch noch einbeziehen ?
Hat er mit diesen Befehl bei mir jetzt nicht gemacht.

Grüße
Member: Wudu80
Wudu80 Oct 18, 2009 at 11:36:55 (UTC)
Goto Top
Hallo,

stimm, ich habe von den Unterordnern nichts geschrieben. Kam mir erst später.

Aber auf den Befehl

for /r "D:\Testordner" %i in ("*.wav"") do @if %~zi lss 100000 @echo del "%i"

bekomme ich die Meldung

Mehr?

bei jedem Tastendruck bekomme ich eine neue Zeile mehr.
Abbrechen kann ich dann nur mit STRG + C

War doch so gemeint ?
Member: bastla
bastla Oct 18, 2009 at 11:52:54 (UTC)
Goto Top
Hallo Wudu80!

Reduziere die Anzahl der Anführungszeichen nach "wav" auf eins ...

Grüße
bastla