Inhalt von Unterverzeichnissen Zippen
Guten Tag,
ich hätte meinen ersten Beitrag im Forum gerne anders gestaltet,
aber okay, muss es eben eine Frage sein
Ich zerbrösel mir den Kopf über ein Problem, welches eigentlich ganz simpel ist.
Das ist alles.
Die Unterverzeichnisse liegen "eigentlich" alle in einer Tiefe von 3
.Verzeichniss
.|_Unterverzeichnis A
|_Unterverzeichniss AA
*Datei1
*Datei2
|_Unterverzeichniss AB
*Datei.1
*Datei.2
.|_Unterverzeichnis B
|_Unterverzeichniss BA
*Datei1
*Datei2
|_Unterverzeichniss BB
*Datei.1
*Datei.2
usw....
Datei1 und 2 sollen gezippt werden und als Namen Unterverzeichniss XX bekommen.
Die Verzeichnis-Namensgebung ist nicht fortlaufend, es gibt mehrere Ausreißer.
Also angefangen zu schreiben, Probleme gehabt.
So habe ich 7zip, Winrar usw hergenommen, ob sie möglicherweise
eine solche Funktion voreingebaut liefern, nix gefunden.
Dann also batch-files gesucht, nix vergleichbares gefunden.
Weitergeschrieben, Probleme sind die Unterverzeichnisse
Eine Idee wäre eine For-Schleife klar...
Aber dabei stellt sich die Frage wie man in die Unterverzeichnisse kommt,
ich habe eine Verzeichnisliste erstellt und wollte nun die ersten rauswerfen
und dann jede Zeile an 7Zip übergeben, bzw in das verzeichnis in der Liste gehen
und 7zip ausführen um dann zum nächsten Listenpunkt zu kommen
aber wie so oft... wie soll ich die Abbruchbedingung formulieren ?
Listenzeilen zählen, für jeden Zeile bis zum Ende ?
ich überlege und teste, aber alzuoft landen die zips im Grundverzeichniss
Gibt es Tipps von den Alten Hasen ?
Und es ist doch kein absonderliches Problem, Oder ?!
ich hätte meinen ersten Beitrag im Forum gerne anders gestaltet,
aber okay, muss es eben eine Frage sein
Ich zerbrösel mir den Kopf über ein Problem, welches eigentlich ganz simpel ist.
Gehe in alle Unterverzeichnisse ausgehend von Pfad C:X,
zippe den Inhalt eines jeden Unterverzeichnisses, lege es dort ab
und lösche anschließend den Inhalt, außer natürlich dem erstellten Zipfile.
zippe den Inhalt eines jeden Unterverzeichnisses, lege es dort ab
und lösche anschließend den Inhalt, außer natürlich dem erstellten Zipfile.
Das ist alles.
Die Unterverzeichnisse liegen "eigentlich" alle in einer Tiefe von 3
.Verzeichniss
.|_Unterverzeichnis A
|_Unterverzeichniss AA
*Datei1
*Datei2
|_Unterverzeichniss AB
*Datei.1
*Datei.2
.|_Unterverzeichnis B
|_Unterverzeichniss BA
*Datei1
*Datei2
|_Unterverzeichniss BB
*Datei.1
*Datei.2
usw....
Datei1 und 2 sollen gezippt werden und als Namen Unterverzeichniss XX bekommen.
Die Verzeichnis-Namensgebung ist nicht fortlaufend, es gibt mehrere Ausreißer.
Also angefangen zu schreiben, Probleme gehabt.
So habe ich 7zip, Winrar usw hergenommen, ob sie möglicherweise
eine solche Funktion voreingebaut liefern, nix gefunden.
Dann also batch-files gesucht, nix vergleichbares gefunden.
Weitergeschrieben, Probleme sind die Unterverzeichnisse
Eine Idee wäre eine For-Schleife klar...
Aber dabei stellt sich die Frage wie man in die Unterverzeichnisse kommt,
ich habe eine Verzeichnisliste erstellt und wollte nun die ersten rauswerfen
und dann jede Zeile an 7Zip übergeben, bzw in das verzeichnis in der Liste gehen
und 7zip ausführen um dann zum nächsten Listenpunkt zu kommen
aber wie so oft... wie soll ich die Abbruchbedingung formulieren ?
Listenzeilen zählen, für jeden Zeile bis zum Ende ?
ich überlege und teste, aber alzuoft landen die zips im Grundverzeichniss
Gibt es Tipps von den Alten Hasen ?
Und es ist doch kein absonderliches Problem, Oder ?!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 62265
Url: https://administrator.de/forum/inhalt-von-unterverzeichnissen-zippen-62265.html
Ausgedruckt am: 22.04.2025 um 21:04 Uhr
9 Kommentare
Neuester Kommentar
Das sind doch die Dateien die du willst, oder?
also mit zip wär das dann so (teste es aber erstmal an Dateien die du nicht brauchst):
In der Zeile wo zip.exe steht must du halt den richtigen Aufruf für das Zipprogramm einbauen das du verwendest. Das kann ich dir nicht so ausm Stehgreif sagen.
also mit zip wär das dann so (teste es aber erstmal an Dateien die du nicht brauchst):
@echo off
for /F "tokens=1,2,3,4 delims=\" %%a in ('dir /s /b /aD') do (
for /F "delims=" %%x in ('dir /b /a-D "%%a\%%b\%%c\%%d"') do (
zip.exe /parameter "%%a\%%b\%%c\%%d\%%x" "%%a\%%b\%%c\%%d.zip"
del "%%a\%%b\%%c\%%d\%%x"
)
)
In der Zeile wo zip.exe steht must du halt den richtigen Aufruf für das Zipprogramm einbauen das du verwendest. Das kann ich dir nicht so ausm Stehgreif sagen.
Hallo Schoenborn und miniversum!
Unter der Voraussetzung, dass das ZIP-Programm einen vernünftigen Errorlevel liefert, würde es vielleicht besser so aussehen:
Abgesehen davon könnte das ZIP-Programm hoffentlich mit einem "move"-Befehl selbst dafür sorgen, dass die Dateien gelöscht werden ("rar.exe" etwa kann das mit "mf").
Grüße
bastla
[Edit] Sicherheitsabfrage für "%%d.zip" hinzugefügt - damit auch ev späteres Updaten möglich. [/Edit]
Unter der Voraussetzung, dass das ZIP-Programm einen vernünftigen Errorlevel liefert, würde es vielleicht besser so aussehen:
@echo off
for /F "tokens=1,2,3,4 delims=\" %%a in ('dir /s /b /aD') do (
for /F "delims=" %%x in ('dir /b /a-D "%%a\%%b\%%c\%%d"') do (
if /i "%%x" neq "%%d.zip" zip.exe a /parameter "%%a\%%b\%%c\%%d\%%d.zip" "%%a\%%b\%%c\%%d\%%x" && del "%%a\%%b\%%c\%%d\%%x"
)
)
Grüße
bastla
[Edit] Sicherheitsabfrage für "%%d.zip" hinzugefügt - damit auch ev späteres Updaten möglich. [/Edit]