使用powershell

时间:2016-03-23 08:49:16

标签: powershell exe extract unzip

我试图在没有任何其他工具的情况下使用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)
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

如果你已经尝试过

start-process C:\Setup.exe -Argumentlist "/a"

然后使用powershell是不可能的,这个命令完全取决于文件的打包方式,如果一切都失败我个人会使用像7-Zip这样的实用程序,但正如你所说,你不想使用实用工具。

答案 1 :(得分:1)

我最近也有同样的问题。 Dewi的回答不会对我有用。我这样解决了:

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

如果您需要将exe用于其他目的,可以选择在完成后将其重命名。

mv gs.zip gs.exe

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

答案 2 :(得分:1)

是的,powershell不能识别所有压缩算法。我正在尝试使用自解压.exe文件中的HP驱动程序包文件来执行此操作。即使将文件名更改为.zip,它也不会提取文件,而是引发New-Object异常错误。