Wie packe ich in einer Ordnerstruktur Dateien mit bestimmter endung in einzelne ZIP-Archive?

... komplette Frage anzeigen

2 Antworten

Eingabeaufforderung (direkt):

for /r "Haupt" %A in ("*.smc") do ("pfad\\zum\\packer\\packer.exe" -optionNachherLöschen -weitereOptionen packbefehl "%~dpnA.zip" "%A")

Hierbei "Haupt", "pfad\\zum\\packer\\packer.exe", -optionNachherLöschen, -weitereOptionen, packbefehl durch die entsprechenden Parameter ersetzen.

Batch-Datei (Prozentzeichen vor der Schleifenvariablen verdoppeln):

for /r "Haupt" %%A in ("*.smc") do ("pfad\\zum\\packer\\packer.exe" -optionNachherLöschen -weitereOptionen packbefehl "%%~dpnA.zip" "%%A")

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PWolff
08.05.2016, 18:17

Für 7-Zip sähe das z. B. so aus

(ich hab keinen Schalter für das Löschen gepackter Dateien gefunden, deshalb nehme ich das in die Kommandozeile mit auf):

for /r "Haupt" %A in ("*.smc") do ("%ProgramFiles(x86)%\7-Zip\7z.exe" a -tzip "%~dpnA.zip" "%A" && del "%A")

bzw. (Batch)

for /r "Haupt" %%A in ("*.smc") do ("%ProgramFiles(x86)%\7-Zip\7z.exe" a -tzip "%%~dpnA.zip" "%%A" && del "%%A")

Erklärungen:

for - führt einen Befehl (oder eine Befehlsfolge) für eine Reihe von Dateien durch

/r - rekursiv, d. h. hier: berücksichtige alle Unterordner

%A bzw. %%A - "Schleifenvariable": wird bei jedem Durchlauf durch den Namen einer der zu behandelnden Dateien ersetzt

in - leitet das Muster ein, nach dem die Namen der zu bearbeitenden Dateien ermittelt werden (das Muster muss aus irgendwelchen Gründen immer in Klammern stehen)

do - leitet den Befehl ein, der für jede der Dateien ausgeführt werden soll

(...) - fasst mehrere Befehle zu einer Befehlsgruppe zusammen, z. B. um sie hintereinander in einer For-Schleife ausführen zu können

%ProgramFiles(x86)% - "Umgebungsvariable" - unterhalb dieses Ordners hat sich bei mir 7Zip installiert

"%ProgramFiles(x86)%\7-Zip\7z.exe" - vollständiger Pfad und Dateiname zur Kommandozeilenversion von 7z

a - weist 7z an, die Datei(en) zum Archiv hinzuzufügen (und das Archiv anzulegen, falls nicht vorhanden)

-tzip - weist 7z an, das ZIP-Format zu verwenden (statt des eigenen 7z-

Formats)

"%~dpnA" bzw. "%%~dpnA" - nimmt vom vollständigen Dateinamen nur den Laufwerksbuchstaben (d), den Pfad (p) und den Namen ohne Endung (n) mit

&& (zwischen zwei Kommandozeilenbefehlen) - führt den 1. Befehl aus, prüft auf einen Fehlercode und führt den 2. Befehl nur aus, falls der 1. Befehl erfolgreich (Fehlercode = 0) beendet wurde

0

Och nö.

Die Struktur wird nicht gescheit angezeigt D':

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PWolff
08.05.2016, 17:39

Als Code formatieren (markieren und auf das Symbol <> über dem Eingabefeld klicken)

0