我有一个iso文件,需要通过powershell脚本将其提取。
我们还有适用于Powershell 2.0的任何解决方案吗?
答案 0 :(得分:1)
为此,您将需要第三方软件。您可以使用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 :(得分:1)
您可以使用DiscUtils
之类的工具来执行此操作,该工具可以针对.NET 2.0进行编译,因此可以在Windows 7的OOB PowerShell 2.0中使用。
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()
}
}
答案 2 :(得分:0)
您可以使用以下命令Mount-DiskImage -ImagePath "*.ISO"
使用该命令,您可以安装磁盘映像以进行进一步的操作。” 使用上述命令挂载映像后,可以使用复制操作命令
$ sudo cp *File Name* /*Location*/
复制文件
$ sudo cp -r *folder names* /*location*/
到递归副本目录
完成操作后,Dismount-DiskImage -ImagePath "*.ISO"
将卸下图像
答案 3 :(得分:0)
对于 64 位:
%ProgramFiles%\7-Zip\7z.exe x -y -o"C:\OutputDirectory" "C:\YOURISOFILE.iso"
对于 32 位:
%ProgramFiles(X86)%\7-Zip\7z.exe x -y -o"C:\OutputDirectory" "C:\YOURISOFILE.iso"
输出目录必须没有空格!