Распаковать Zip-файлы в каталог

У меня есть каталог с несколькими подкаталогами. Я могу видеть файлы в каталоге с помощью gci -Recurse * | % {write-host $ _}. Внутри данного списка есть несколько zip-файлов. Я хотел бы распаковать эти zip-файлы в каталог, называемый как zip-файл, при использовании Expand-Archive.

Как мне совместить вызов gci -Recurse * | % {write-host $ _} с Expand-Archive.


person Michael    schedule 02.02.2021    source источник
comment
посмотрите, для чего % псевдоним. [ухмылка] вы можете поместить много разных команд в блок сценария, который для этого нужен.   -  person Lee_Dailey    schedule 02.02.2021


Ответы (1)


попробуйте это - он найдет любые .zip файлы в папке c:\foo и ниже и развернет их во вложенную папку с тем же именем, что и zip:

gci -Recurse -File c:\foo |? Extension -eq '.zip' |% { Expand-Archive $_.FullName -DestinationPath (join-path $_.Directory $_.BaseName) }
person Mark Elvers    schedule 02.02.2021
comment
Можно ли настроить путь соединения следующим образом (путь соединения $ _. Распаковка каталога $ _. BaseName)}. При этом я получаю сообщение об ошибке. - person Michael; 02.02.2021
comment
Привет, Join-Path принимает только два аргумента. Вы можете просто заменить это выражение целиком: -DestinationPath "$($_.Directory)\Unzipped $($_.BaseName)" - person Mark Elvers; 02.02.2021