我试图在没有任何其他工具的情况下使用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)
}
感谢您的帮助。
答案 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异常错误。