Попытка выполнить самораспаковывающийся zip-файл в командной строке

У меня есть эти самораспаковывающиеся zip-файлы, которые я пытаюсь извлечь на машинах 2008/7 удаленно. Но они приходят в виде .exe, и от пользователя требуется дважды щелкнуть и выбрать место извлечения.

На сайте поддержки WinZip говорят использовать флаг /auto, поэтому команда будет выглядеть так:

C:\deploy\.exe /auto C:\путь\\

Он запускает процесс в диспетчере задач, но он застрял там навсегда.

Самораспаковывающийся исполняемый файл

Когда я открываю файл в текстовом редакторе, он говорит: !Эта программа не может быть запущена в режиме DOS.

Так что, может быть, кто-нибудь из вас знает, как я могу автоматически автоматизировать извлечение файла самораспаковки. Или, может быть, есть способ запустить их с файлом ответов.

Спасибо


person Dmitry R    schedule 02.12.2011    source источник


Ответы (3)


Я знаю, что это старее, но я только что нашел эту страницу, пытаясь сделать то же самое (для автоматической установки драйвера)

То, что ОП выложил выше, отлично работает.

Например, моя строка была:

UPS_319_117.exe /auto .\upstemp\

(Это было после того, как командный файл создал папку upstemp). Я предполагаю, что либо путь был неправильным, поэтому самораспаковывающийся код выдал ошибку в случае OP, либо что-то в этом роде, и он просто завис в ожидании ввода, которого не произошло, поскольку он был в автоматическом режиме...

person Ron    schedule 16.08.2012

Обычно вы можете распаковать их с помощью сторонней утилиты для извлечения ZIP.

person Neil    schedule 02.12.2011
comment
Мне нужен способ сделать это, возможно, без файлов ответов или чего-то в этом роде. Это защищенная среда, и мне не разрешено устанавливать там какое-либо стороннее решение. - person Dmitry R; 03.12.2011
comment
@DmitryR Возможно, вам разрешено использовать другую утилиту сжатия ZIP для создания этих файлов? - person Neil; 04.12.2011
comment
Нет, к сожалению, я получаю их в таком виде от поставщика приложения. - person Dmitry R; 04.12.2011

У меня такая же проблема. В конце концов я решил это с помощью 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: Как разархивировать файл в Powershell?

person Andrew    schedule 25.10.2017