使用PowerShell提取.exe文件

5

我正在尝试使用PowerShell提取.exe文件,而不需要任何其他工具。

我尝试使用System.IO.Compression.ZipFile,但它仅适用于.zip文件。

$zip_file = Get-Item ("C:\Users\00WORK\gs\gs.exe")
$destination = Get-Item ("C:\Users\tuna")
[System.IO.Compression.ZipFile]::ExtractToDirectory($zip_file,$destination)

我也尝试了这个方法,但没有成功。
start-process C:\Users\Downloads\gs.exe -Argumentlist "/a"

我也尝试了这个,但是还是没有成功。
$shell = new-object -com shell.application
$zip = $shell.NameSpace(“C:\Users\00WORK\gs\gs.exe”)
foreach($item in $zip.items())
{
$shell.Namespace(“C:\Users\tuna”).copyhere($item)
}

感谢您的帮助。

gs.exe是什么?这是一个自解压缩的zip文件吗?我认为你可以通过运行它来提取内容。 - Kory Gill
3个回答

4

我最近也遇到了同样的问题。Dewi的回答对我不起作用。我通过以下方式解决了这个问题:

mv gs.exe gs.zip
Expand-Archive -Path gs.zip

如果有需要,您可以在完成后将其重新命名,以便在其他情况下使用exe文件。

mv gs.zip gs.exe

请注意,您需要PowerShell 5或更高版本才能使用Expand-Archive。值得庆幸的是,这个版本可以下载到Win 7,作为微软KB3191566

4
如果你已经尝试过
start-process C:\Setup.exe -Argumentlist "/a"

那么使用PowerShell是不可能的,该命令完全依赖于文件打包的方式。如果所有尝试都失败了,我个人会使用类似7-Zip这样的工具,但正如您所说,您不想使用实用程序。


2

嗯,PowerShell无法识别所有压缩算法。我正在尝试使用HP驱动程序包文件完成此操作,该文件以自解压缩的.exe文件形式提供。即使将文件名更改为.zip,它也无法提取文件,而是抛出New-Object异常错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接