Per Batch Dateien aus mehreren Ordnern packen
Hallo miteinander
Ich habe schon etwas im Internet rumgestöbert, aber leider noch nicht wirklich was brauchbares gefunden.
Mein Problem ist folgendes:
Ich möchte den Inhalt von ca. 5000 Ordnern packen (für jeden Ordner ein Archiv) und dann die Daten aus dem Ordner löschen.
Das Ganze möchte ich gerne mit Hilfe einer Batch Datei und 7zip umsetzen. Die Namen für die jeweiligen Archive soll sich auf den Ordnernamen beziehen. Also zu dem Ordner "Test" soll dann das dazugehörige Archiv den Namen "Test" haben.
Gibt es die Möglichkeit so etwas umzusetzen und kann mir hier vielleicht jemand weiterhelfen? Ich steh irgendwie total auf dem Schlauch und hab auch noch nicht so die große Erfahrung damit.
Grüße
Fixi
Ich habe schon etwas im Internet rumgestöbert, aber leider noch nicht wirklich was brauchbares gefunden.
Mein Problem ist folgendes:
Ich möchte den Inhalt von ca. 5000 Ordnern packen (für jeden Ordner ein Archiv) und dann die Daten aus dem Ordner löschen.
Das Ganze möchte ich gerne mit Hilfe einer Batch Datei und 7zip umsetzen. Die Namen für die jeweiligen Archive soll sich auf den Ordnernamen beziehen. Also zu dem Ordner "Test" soll dann das dazugehörige Archiv den Namen "Test" haben.
Gibt es die Möglichkeit so etwas umzusetzen und kann mir hier vielleicht jemand weiterhelfen? Ich steh irgendwie total auf dem Schlauch und hab auch noch nicht so die große Erfahrung damit.
Grüße
Fixi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 145485
Url: https://administrator.de/forum/per-batch-dateien-aus-mehreren-ordnern-packen-145485.html
Ausgedruckt am: 01.05.2025 um 08:05 Uhr
11 Kommentare
Neuester Kommentar

Hallo Fixi,
ich sehe da kein Problem,
Für den Anfang könnte dies reichen ( in einem CMD Fenster)
In einer Batch-Datei wären die %-Zeichen zu verdoppeln.
Gruß
LotPings
Edit: Das 2009 war von einem Test übrig geblieben, entfernt
In Anlehnung an Bastlas Batch hier eine Batch Variante
Unterschiedlich ist :
Gruß
Lotpings
ich sehe da kein Problem,
- wie sieht die Ordnerstruktur aus?
- gibt es Unterordner?
- soll im Archiv der Ordner (relativ/absolut) enthalten sein?
Für den Anfang könnte dies reichen ( in einem CMD Fenster)
for /F "delims=" %A in ('Dir /B/AD *') Do 7z.exe a -r -tzip %A %A\* && RD /S /Q %A
Gruß
LotPings
Edit: Das 2009 war von einem Test übrig geblieben, entfernt
In Anlehnung an Bastlas Batch hier eine Batch Variante
@Echo off&SetLocal
Set "SevenZ=C:\Programme\7-zip\7z.exe"
Pushd "C:\Hauptordner"
for /F "delims=" %%A in ('Dir /B/AD *') Do %SevenZ% a -r -tzip %%A %%A\* && RD /S /Q %%A
Popd
- anderer Archivtyp (zip) und
- der Unterordner ist im Archiv enthalten
Gruß
Lotpings
Hallo Fixi637 und willkommen im Forum!
Soferne alle Ordner auf der selben Ebene liegen, könnte das etwa so gehen:
Anmerkungen:
Grüße
bastla
[Edit] Hallo LotPings! Wieder einmal auf der Überholspur unterwegs ...
Soferne alle Ordner auf der selben Ebene liegen, könnte das etwa so gehen:
@echo off & setlocal
set "Basis=D:\Alle Ordner sind hier drin"
set "Ziel=D:\Da sollen die gepackten Dateien hin"
set "7z=C:\Programme\7-zip\7z.exe"
for /d %%i in ("%Basis%\*.*") do (
pushd "%%i"
"%7z%" a -r "%Ziel%\%%~nxi.7z" *.* && echo del /s /q /a /f *.*
popd
)
- Die Zeile 2 bis 4 sind an Deine Gegenheiten anzupassen.
- Wegen des "
echo
" vor dem "del
" wird das Löschen der Dateien nur simuliert (um Ernst zu machen, das "echo
" einfach entfernen). - Es werden (lt Vorgabe) alle Dateien, aber keine Ordner gelöscht.
- Da von mir ungetestet, solltest Du den Batch nicht gleich auf alle 5000 Ordner loslassen, sondern zunächst nur einen Testordner mit 2 oder 3 Unterordnern benutzen ...
Grüße
bastla
[Edit] Hallo LotPings! Wieder einmal auf der Überholspur unterwegs ...
Hallo Fixi637!

Unter Berücksichtigung Deiner Antwort an LotPings wäre ohnehin eine Anpassung erforderlich gewesen:
Die ".7z"-Dateien (wenn es ".zip" werden sollen, wie von LotPings schon verwendet:
Grüße
bastla
Hab ich da irgendwas falsch gemacht?
Leider nein - das hab' ich selbst verbockt ... Unter Berücksichtigung Deiner Antwort an LotPings wäre ohnehin eine Anpassung erforderlich gewesen:
@echo off & setlocal
set "Basis=D:\Alle Ordner sind hier drin"
set "Ziel=%Basis%"
set "Prog=C:\Programme\7-zip\7z.exe"
for /d %%i in ("%Basis%\*.*") do (
"%Prog%" a -r "%Ziel%\%%~nxi.7z" "%%i\*.*" && echo rd /s /q "%%i"
)
-tzip
nach dem "-r
") werden jetzt im Ausgangsordner erstellt und die gepackten Ordner (nicht nur die darin enthaltenen Dateien) gelöscht - damit besteht eigentlich nur mehr ein Unterschied zum ersten Ansatz von LotPings: Die Batchdatei muss nicht im Ausgangsordner liegen ...Grüße
bastla

Zitat von @bastla:
Hallo Fixi637!
> Hab ich da irgendwas falsch gemacht?
Leider nein - das hab' ich selbst verbockt ...
Die Begründung was falsch war ist aber durchaus interessant:Hallo Fixi637!
> Hab ich da irgendwas falsch gemacht?
Leider nein - das hab' ich selbst verbockt ...
Die Shell interprtiert in der Schleife das
%7
von "%7z%" als Kommandozeilenargument 7Der Grund warum Variablennamen nicht mit Ziffern beginnen sollten.
(Ich habe aber auch erst probieren müssen bevor ich darauf kam...)
Gruß
LotPings

Zitat von @Fixi637:
Es sollen also die zip Dateien entpackt werden und in einem Ordner gespeichert werden, der wie die zip Datei heißt.
Danach soll die zip Datei gelöscht werden. Kann man das irgendwie umsetzen?
Es sollen also die zip Dateien entpackt werden und in einem Ordner gespeichert werden, der wie die zip Datei heißt.
Danach soll die zip Datei gelöscht werden. Kann man das irgendwie umsetzen?
Hallo Fixi,
hängt davon ab welche Variante du benutzt, Bastlas oder meine.
Bei meiner Batch ist der Ordnername mit im Archiv abgespeichert.
Auf der Kommandozeile in deinem Hauptordner reduziert sich das auf:
c:\Programme\7-zip\7z.exe x Ordner1.zip && Echo Del Ordner1.zip
Um alle im aktuellen Ordner befindlichen Zips hier zu entpacken:
For %A in (*.zip) Do @c:\Programme\7-zip\7z.exe x "%A" && Echo Del "%A"
Bei Bastlas Version müsste man als Zielverzeichnis den Ordner noch angeben, ggfs erst erzeugen.
Gruß
LotPings

Interessante Wortschöpfung 
Ansonsten schön, wenn es klappt.
Gruß
LotPings
Ansonsten schön, wenn es klappt.
Gruß
LotPings