45455
Goto Top

Batch-Befehl einzeln in allen Unterverzeichnissen anwenden

Hallo,

ich bleibe gerade etwas mit meinen rudimentären Batch-Kenntnissen hängen.

Ziel: Ich möchte einen Batch-Befehl in allen Unterverzeichnissen eines Laufwerks ausführen.
Genauer: Es sollen alle Dateien des Typs *.typ in ihrem jeweiligen Unterverzeichnis in eine ZIP-Datei umgewandelt werden.

Das Zippen ist kein Thema, das erledigt mir das Befehlszeilenkommando von winrar.

Nur, wie ich das in jedem Unterverzeichnis jeweils ausführen lasse, ist mir nicht klar.
Ich weiß zwar, dass das mit einer FOR-Schleife und den delimeter-Parametern geht, aber dabei steigt mein Verständnis für Batch-Befehle aus.

(Alternativ wäre natürlich der Link auf eine umfassende, verständliche Erklärung der Parameter und Optionen von FOR - für Batch-Dummies bitte face-wink )

Vielen Dank schon im Voraus für jede konstruktive Antwort
Gruß
Kai

Content-Key: 208775

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

Ausgedruckt am: 29.03.2024 um 04:03 Uhr

Mitglied: Biber
Biber 27.06.2013 um 16:54:10 Uhr
Goto Top
Moin blue0711,

für den genannten Plan brauchst du nur eine FOR-Anweisung vom CMD-Prompt abschicken, dierekursiv durch dieUnterverzeichnisse wacket.

Zum verständnis einfach die Hilfe zu FOR (FOR /?) aufrufen und bei "FOR /R" nachlesen.

for /r "D:\IrgendWo" %i in (*.pdf) do @SchenkMirEinFotoVon "%i""  
--> würde auf alle *.pdf-Dateien in D:\irgendwo den Befehl SchenkMirEinFotoVon anwenden.

for /r "D:\IrgendWoAnders" %i in (*.typ) do @echo D:\ein\pfadzuWinrar\winrar -parameter "%i""  
--> würde auf alle *.typ-Dateien in D:\irgendwoAnders den Befehl "@echo D:\ein\pfadzuWinrar\winrar -parameter " bezogen auf Datei %i anwenden.

Grüße
Biber
Mitglied: 45455
45455 27.06.2013 um 19:50:11 Uhr
Goto Top
Super, danke. Genau, was ich erreichen wollte.

Zum Hintergrund: Wir haben Dateien, die sehr groß werden, sich aber auf 25 bis 50% komprimieren lassen, auf einer Storage liegen, die leider keine NTFS-Komprimierung unterstützt.
Die Dateien werden aus Archivierungsgründen zwar benötigt, jedoch selten aufgerufen, wenn sie ein gewisses Alter erreicht haben.

Daher sollen regelmäßig alle Dateien dieses Typs, die älter als ein Jahr sind, in eine *.typ.zip-Datei gewandelt werden, die im selben Ordner wie die Ursprungsdatei liegt und auch noch deren Datum hat.

Klingt banal, spart in unserem Fall allerdings etwa 1 TB Storage ein, lohnt sich also echt.

Dieser Befehl erreicht genau das gewünschte:
FOR /R "H:\" %i in (*.typ) do @echo P:\winrar m -tl -to365d -y "%i.zip" "%i"  
Vielen Dank und Gruß
Kai
Mitglied: bastla
bastla 27.06.2013 um 19:57:09 Uhr
Goto Top
Hallo blue0711!

Vielleicht schaust Du trotzdem noch bei Tutorial zur FOR-Schleife vorbei ...

Grüße
bastla
Mitglied: 45455
45455 27.06.2013 um 20:04:35 Uhr
Goto Top
Mach ich, danke.
Hab ich bisher übersehen.

Gruß
Kai