7z 存档包含与正则表达式匹配的目录

7z 存档包含与正则表达式匹配的目录

我想存档与正则表达式模式 ( /[0-9]{4}/) 匹配的目录。7z 支持此功能吗?

这找不到匹配的目录:

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

答案1

  1. 7Zip 不支持正则表达式,仅支持通配符。引用自捆绑手册:

7-Zip 不使用系统通配符解析器。7-Zip 不遵循古老的规则,即表示任何文件。7-Zip 处理匹配任何具有扩展名的文件的名称。要处理所有文件,必须使用 * 通配符。

  1. 如果你使用 PowerShell,你可能可以让它以这种方式工作:
# 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]{4}'} |
                          # 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)

相关内容