Параметр строки командной строки установщика Microsoft не работает? - PullRequest
0 голосов
/ 22 ноября 2018

Итак, я пытаюсь запустить тихую установку с моим msi, и кажется, что я могу легко передать число для имеющегося у меня параметра, но я не могу передать строку ... Я пыталсяиспользование одинарных и двойных кавычек "

msiexec /i 'My Installer.msi' /quiet JREPATH="c:\\BLA BLA"

Это, а также одинарные кавычки возвращают следующее:

enter image description here

Теперь согласноэта статья: https://docs.microsoft.com/en-us/windows/desktop/msi/command-line-options

это должно работать ...

Значения свойств, которые являются буквенными строками, должны быть заключены в кавычки. Включите любые пробелы в строке между знаками.

msiexec / i A: \ Example.msi PROPERTY = "Embedded White Space"

Нет проблем с MSI, я предполагаю это, потому что если я передаю число..it работает ...

msiexec /i 'My Installer.msi' /quiet JREPATH=3

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ:

Кажется, что проблема возникает, когда у меня есть пробел в значениипараметра, например, что-то вроде приведенного ниже примера работает:

msiexec /i "WKFS ReportGenerator.msi" /quiet JREPATH="c:\\;;BLA"

Однако это не так:

msiexec /i "WKFS ReportGenerator.msi" /quiet JREPATH="c:\\;;BLA a"

ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ 2:

Эти команды, включая пробелы в значении , работают при использовании простого cmd вместо PowerShell ..

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Если вы вызываете из Powershell, вы должны использовать оператор вызова, и это также должно работать с параметрами, заключенными в кавычки:

& msiexec /i `"My Installer.msi`" /quiet JREPATH=`"c:\BLA BLA`"
0 голосов
/ 22 ноября 2018

ОБНОВЛЕНИЕ : поскольку это было связано с PowerShell.См. Модуль PowerShell для установщика Windows на github.com (прокрутите вниз для описания, используйте вкладку для загрузки ).Я не особо тестировал его, но это от Хит Стюарт - старший инженер-программист Microsoft ( github ).

Краткое описание,встроенный пример :

install-msiproduct .\example.msi -destination (join-path $env:ProgramFiles Example)

Ниже было написано до того, как я понял, что это связано с PowerShell .


Быстрое предложение : Возможно, попробуйте эту командную строку:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log" JREPATH="c:\MyPath"

Избавьтесь от двойного \\ в указанном вами пути (может быть достаточно) и используйте переключатель старого стиля /QN вместо переключателя /quiet.Некоторые подробности и подробности ниже.


Установка без вывода сообщений : Что это за установщик?Это пакет поставщика?Я полагаю, какое-то Java-приложение?Вот как install a normal MSI file silently:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log"

Быстрое объяснение :

/L*V "C:\Temp\msilog.log"= verbose logging
/QN = run completely silently
/i = run install sequence

msiexec.exe : есть два типа переключателей для msiexec.exe - старомодные, такие как /QN (Command-Line Options) для установки без вывода сообщений, которая соответствует более новым /quiet, которые вы используете (Standard Installer Command-Line Options).

Добавление свойствВы делаете, как уже сделали, добавьте его в командную строку:

msiexec.exe /i myinstaller.msi ADDLOCAL="Program,Dictionaries" SERIALKEY="1234-1234" /qn

Некоторые дополнительные ссылки :

...