ZIP-Datei mit 7Zip mit Ausnahme Verzeichnisse erstellen

dinoldo

Cadet 4th Year
Registriert
Juni 2017
Beiträge
104
Hallo Leute,

ich möchte per Batchdatei ein Verzeichnis als ZIP-Datei erstellen. Dabei sollen nur aus dem ROOT-Verzeichnis die Verzeichnisse ausgeschlossen werden, die mit help und Webhelp in Namen beginnen.

Ich habe wie folgt versucht. Die ZIP-Datei wird erstellt und die Verzeichnisse help* und Webhelp werden nicht berücksichtigt.
"C:\Program Files\7-Zip\7z.exe" a -tzip "C:\DATEN\14_Extern\SAR.zip" "P:\Projekte\2021\Arcaden\" -xr!help -xr!Webhelp

Leider wurden alle anderen Verzeichnisse die beispielsweise help heißen ebenfalls ausgeschlossen, die sich in weiteren Verzeichnisebenen befinden. Das soll nicht so sein. Es sollen nur help* und Webhelp aus dem ROOT-Verzeichnis sprich P:\Projekte\2021\Arcaden\help* und P:\Projekte\2021\Arcaden\Webhelp ausgeschlossen werden.

Wer kann mir bitte helfen?

Beste Grüße,
Dino
 
Lange nicht damit beschaeftigt.

Aber kann es sein, dass dieses -xr bedeutet das rekursiv in die Verzeichnisse gegangen wird?

Lass mal das r weg und probiere.
 
Muss es ein Batch mit 7z.exe sein?
In Powershell wäre es einfach möglich und sollte auf jedem halbwegs aktuellen Windows auch ohne Drittanbieter-Tools laufen.

Ich habe folgende Ordnerstruktur erzeugt:

C:\Test\Arcaden\A\
C:\Test\Arcaden\A\help\
C:\Test\Arcaden\A\Webhelp\
C:\Test\Arcaden\B\

C:\Test\Arcaden\Help\
C:\Test\Arcaden\Webhelp\


Und darin folgende Files platziert:

C:\Test\Arcaden\A\help.txt
C:\Test\Arcaden\B\test.txt


Die rot markierten Elemente sollen nicht ins ZIP übernommen werden, die grünen schon.

Ich habe ein Powershell-Skript (C:\test\skript.ps1) mit folgendem Inhalt erzeugt:

PowerShell:
$path="C:\test\Arcaden\"
$out="C:\test\output.zip"
$exclude=@("Help", "Webhelp")

Get-ChildItem $path -Directory | where { $_.Name -notin $exclude} |  Compress-Archive -DestinationPath $out -Update

Im output.zip sind dann folgende Ordner und Dateien vorhanden:

A\
A\help\
A\Webhelp\
A\help.txt
B\
B\test.txt

Bin nicht sicher, ob ich alle Edge-Cases abgedeckt habe, leere Ordner werden vermutlich ignoriert.
 
Hi BFF,

das ohne r hat funkioniert.
 
  • Gefällt mir
Reaktionen: BFF
Zurück
Oben