Извлечь определенный файл из Zip powershell [duplicate]

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

3
задан Mathias R. Jessen 11 September 2015 в 15:10
поделиться

2 ответа

Решил его, используя следующий скрипт:

Add-Type -Path 'C:\dev\Libraries\DotNetZip\Ionic.Zip.dll'

$zip = [Ionic.Zip.ZIPFile]::Read($sourceFile)
foreach ($file in $zip.Entries) {    
if ($file -like "*.update") {
        $zip | %{$file.Extract("C:\temp\test", [Ionic.Zip.ExtractExistingFileAction]::OverWriteSilently)}
    }
}
1
ответ дан Willem 20 August 2018 в 11:51
поделиться
  • 1
    Я не думаю, что это должно быть отмечено как правильный ответ. – Santhos 20 February 2018 в 08:56

Вот как вы можете сделать это изначально в более новых версиях Powershell:

Add-Type -Assembly System.IO.Compression.FileSystem
$zip = [IO.Compression.ZipFile]::OpenRead($sourceFile)
$zip.Entries | where {$_.Name -like '*.update'} | foreach {[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, "C:\temp\test", $true)}
$zip.Dispose()
11
ответ дан Arithmomaniac 20 August 2018 в 11:51
поделиться
  • 1
    Я смотрел на это сегодня, чтобы решить вопрос самостоятельно, и у меня был один спотыкающийся момент, который я хотел бы прояснить для будущих читателей: функция извлечения должна читать как ExtractToFile(zipArchive, destinationFileName, allowOverwriteYN). См. MSDN для получения дополнительной информации. – Mr. Mike 10 April 2017 в 22:42
Другие вопросы по тегам:

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