извлекать вложенные архивы для получения контента - PullRequest
1 голос
/ 22 марта 2020

У меня есть вложенные архивы, которые я пытаюсь распаковать, он имеет следующий формат, поэтому archive1.zip - это главное, остальные архивы вложены друг в друга. Мне нужно извлечь каталог папки.

  • archive1.zip /
    • archive2.tar /
      • archive3.7z /
        • папка /
          • file.txt

Я попробовал следующее:

Get-ChildItem -Path $path -Recurse | ForEach-Object { $_.FullName } | Split-Path | Get-Unique |

ForEach-Object { cd $_; 7z x * -r -aou  -o"$path" }

Но я могу получить только archive2.tar как выход

1 Ответ

0 голосов
/ 22 марта 2020

Мне удалось сделать это, используя al oop, как показано ниже: распаковать архив, затем удалить его и так далее.

$files = Get-ChildItem -Path $path
$extension = ".tar|.zip|.7z"

1..3 | % {

$zip = Get-ChildItem -Path $path -File  | where {$_.Extension -match $extension} | ForEach-Object { $_.Name }
$files | ForEach-Object { $_.FullName } | Split-Path | Get-Unique |
ForEach-Object { Set-Location $_; 7z x * -aou -o"$path"; Remove-Item $zip}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...