尝试在命令行中静默执行自解压 zip 文件
Posted
技术标签:
【中文标题】尝试在命令行中静默执行自解压 zip 文件【英文标题】:Trying to execute self extracting zip file silently in command line 【发布时间】:2011-12-02 21:02:44 【问题描述】:我有这些自解压 zip 文件,我试图在 2008/7 机器上远程解压。但它们是以 .exe 的方式出现的,它需要用户双击并选择提取位置。
在 WinZip 支持网站上,他们说要使用 /auto 标志,因此命令将如下所示:
C:\deploy\.exe /auto C:\path\\
它在任务管理器中启动进程,但一直卡在那里。
当我在文本编辑器中打开文件时,它说:!这个程序不能在 DOS 模式下运行。
所以也许你们中的任何人都知道我可以如何自动自动提取自提取文件。或者也许有一种方法可以使用答案文件来运行它们。
谢谢
【问题讨论】:
【参考方案1】:我知道这是旧的,但我只是发现这个页面试图做同样的事情(用于静默驱动程序安装)
上面的 OP 可以正常工作。
例如,我的台词是:
UPS_319_117.exe /auto .\upstemp\
(这是在让批处理文件创建 upstemp 文件夹之后)。我的猜测是路径错误,因此自解压在 OP 的情况下出现错误,或者类似的情况,它只是挂起等待输入,因为它处于自动模式,所以不会发生......
【讨论】:
【参考方案2】:您通常可以使用第三方 ZIP 提取实用程序解压缩这些文件。
【讨论】:
我需要一种方法来做到这一点,而无需使用响应文件或类似的东西。这是一个安全的环境,我不允许在那里安装任何第三方解决方案。 @DmitryR 是否允许您使用不同的 ZIP 压缩实用程序来创建这些文件? 不,不幸的是,我是从应用程序供应商那里得到这样的【参考方案3】:我遇到了同样的问题。我最终用 PowerShell 解决了这个问题。将 .exe 文件重命名为 .zip 文件。然后运行如下命令:
powershell -Command "MD C:\PathWhereFileShouldExtractTo; $shell = New-Object -ComObject shell.application; $zip = $shell.NameSpace('C:\PathToZipFile\YourFile.zip'); foreach ($item in $zip.items()) ; $shell.Namespace('C:\PathWhereFileShouldExtractTo').CopyHere($item); "
我从这篇文章中窃取了关于如何使用 Powershell 解压缩文件的基本 PowerShell 命令:How to unzip a file in Powershell?
【讨论】:
以上是关于尝试在命令行中静默执行自解压 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章