7z архив включает в себя каталоги, соответствующие регулярному выражению

825
Craig

Я хотел бы заархивировать каталоги, которые соответствуют шаблону регулярного выражения ( /[0-9]/). 7z поддерживает это?

Это не находит подходящие каталоги:

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

1 ответ на вопрос

3
beatcracker
  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]'} | # 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) 
Я собираюсь отметить ваш ответ как принятый - заставил меня двигаться в правильном направлении. Фактический синтаксис: `7z a -t7z C: \ Users \\ Desktop \ Archive.7z (Get-ChildItem. | Where-Object {$ _. Name -Match "^ [0-9] "}) ` Craig 8 лет назад 1

Похожие вопросы