Das 7z-Archiv enthält Verzeichnisse, die mit Regex übereinstimmen

900
Craig

Ich möchte Verzeichnisse archivieren, die einem Muster mit regulärem Ausdruck ( /[0-9]/) entsprechen. Unterstützt 7z dies?

Dies findet keine passenden Verzeichnisse:

PS> 7z a -t7z C:\Users\<user>\Desktop\Archive.7z '/[0-9]/' 
2

1 Antwort auf die Frage

3
beatcracker
  1. 7Zip unterstützt keinen Regex, nur Wildcards. Zitat aus dem mitgelieferten Handbuch:

7-Zip verwendet den Wildcard-Parser nicht. 7-Zip folgt nicht der archaischen Regel, nach der . bedeutet eine beliebige Datei. 7-Zip-Leckereien . als Übereinstimmung mit dem Namen jeder Datei, die eine Erweiterung hat. Um alle Dateien verarbeiten zu können, müssen Sie einen * Platzhalter verwenden.

  1. Wenn Sie PowerShell verwenden, können Sie es wahrscheinlich so funktionieren lassen:
# Get only objects with names consisting of 4 characters [array]$Folders = Get-ChildItem -Path '.\' -Filter '????' | # Filter folders matching regex Where-Object {$_.PsIsContainer -and $_.Name -match '[0-9]'} | # Get full paths. Not really needed, # PS is smart enough to expand them, but this way it's more clear Select-Object -ExpandProperty Fullname  # Compress matching folders with 7Zip & '7z.exe' (@('a', '-t7z', 'C:\Users\<user>\Desktop\Archive.7z') + $Folders) 
Ich werde Ihre Antwort als akzeptiert markieren - ich habe die richtige Richtung eingeschlagen. Tatsächliche Syntax: 7z a -t7z C: \ Users \\ Desktop \ Archive.7z (Get-ChildItem. | Where-Object {$ _. Name -Match "^ [0-9] "}) ` Craig vor 8 Jahren 1