Как извлечь файл .iso с помощью Powershell 2.0? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть iso-файл, который нужно извлечь с помощью сценария powershell.

есть ли у нас какое-либо решение, которое применимо и к Powershell 2.0?

Ответы [ 3 ]

1 голос
/ 03 июля 2019

Для этого вам потребуется стороннее программное обеспечение.Вы можете сделать это с 7Zip следующим образом:

7z.exe x -y -o C:\OutputDirectory X:\YOURISOFILE.iso

, где

x  (Extract with full paths) command
-o (set Output directory) switch
-y (assume Yes on all queries) switch
1 голос
/ 03 июля 2019

Вы можете сделать это с помощью чего-то вроде DiscUtils, которое компилируется в .NET 2.0 и поэтому может использоваться в OOB PowerShell 2.0 в Windows 7.

  1. Скачать / клонироватьDiscUtils
  2. Сборка всего решения в Visual Studio или использование msbuild с параметрами по умолчанию
  3. Импорт версии DiscUtils.Iso9660 сборки .NET 2.0 и начало извлечения:

$isoPath = "C:\path\to\image.iso"
$destination = "C:\Output"

# Import DiscUtils.Iso9660 lib
Add-Type .\DiscUtils\Library\DiscUtils\bin\Release\net20\DiscUtils.Iso9660.dll

# Open a filestream to the ISO
$isoStream = (Get-Item $isoPath).OpenRead('Open')

# Create a CDReader to read the disc image
$reader = [DiscUtils.Iso9660.CDReader]::new($isoStream, $true)

# Enumerate all directories and create in destination:
$reader.GetDirectories('\', '*', 'AllDirectories') |Foreach-Object {
    $null = mkdir (Join-Path $destination $_)
}

# Enumerate all files and copy them to the destination
$reader.GetFiles('\', '*.*', 'AllDirectories') |ForEach-Object {
    try {
        $newFile = New-Item (Join-Path $destination $_) -ItemType File
        $newFileStream = $newFile.OpenWrite()
        $isoFileStream = $reader.OpenFile($_, 'Open')
        $isoFileStream.CopyTo($newFileStream)
        $newFileStream.Close()
    }
    finally {
        $isoFileStream.Dispose()
        $newFileStream.Dispose()
    }
}
0 голосов
/ 03 июля 2019

Вы можете перейти с помощью следующей команды Mount-DiskImage -ImagePath "*.ISO"

С помощью этой команды вы можете смонтировать образ диска для дальнейших действий. ' Вы можете использовать команды действия копирования после того, как вы смонтировали образ с помощью приведенной выше команды

$ sudo cp *File Name* /*Location*/ для копирования файлов

$ sudo cp -r *folder names* /*location*/ в каталогах рекурсивного копирования

После того как вы покончили с вещами Dismount-DiskImage -ImagePath "*.ISO" размонтирует изображение

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