Как передать пробел и двойную кавычку вместе в параметрах командной строки MSI?C#

Место общения программистов C#
Ответить
Anonymous
 Как передать пробел и двойную кавычку вместе в параметрах командной строки MSI?

Сообщение Anonymous »

Я пытаюсь установить настольное приложение через командную строку. Приложение поставляется с установочным пакетом, например setup.exe, который был создан с помощью InstallShield.
Я использую этот setup.exe для установки приложения. передавая параметры MSI непосредственно в MSI через командную строку. Для справки:

Код: Выделить всё

setup.exe/s /v"/l*V installer.log INSTALLDIR="""C:\Program Files\Diagnostic manager""" INSTANCE=\"SD-WIN8-02\" REPOSITORY=\"Repository1\" SERVICEUSERNAME=\"SD-WIN8-02\testuser\" SERVICEPASSWORD="/7c2'==V@:~U-L%~*.Rv}CvBV'HHzyAq~'5NGA=" CLUSTERINSTALL=0 SETUPTYPE=Typical ApplicationUsers=AllUsers ALLUSERS=1 /qn"
Ожидается, что параметр SERVICEPASSWORD будет иметь значения, содержащие пробел, двойные кавычки или и то, и другое. Соответственно, должны быть приняты следующие четыре сценария пароля:
  • без пробела и без двойных кавычек (/7c2'==V@:~U-L%~* .Rv}CvBV'HHzyAq~'5NGA=)
  • без пробела и в двойных кавычках (/7c2'==V@:~U-L%~*.Rv}CvB"V'HHzyAq~'5NGA=)
  • с пробелом и без двойных кавычек (/7c2'== V@:~U-L%~*.Rv}CvB V'HHzyAq~'5NGA=)
  • с пробелом и двойными кавычками (/7c2'==V@:~U-L%~*.Rv}CvB V'H"HzyAq~'5NGA=)
Для этих я пробовали:
Первый сценарий сработал успешно: /7c2'==V@:~U-L%~*.Rv}CvBV'HHzyAq~'5NGA=
Второй сценарий сработал после экранирования двойной кавычки обратной косой чертой: /7c2'==V@:~U-L%~*.Rv}CvB\"V'HHzyAq~'5NGA=
Третий сценарий работал, когда значение было заключено в экранированные двойные кавычки: \"/7c2'==V@:~U-L%~*.Rv}CvB V'HHzyAq~'5NGA=\"
Однако объединить обе корректировки для четвертого сценария (пробелы + двойные кавычки) не удалось: \"/7c2'==V@ :~U-L%~*.Rv}CvB V'H\"HzyAq~'5NGA=\"
Как изменить параметр SERVICEPASSWORD, чтобы обеспечить пространство и двойные кавычки передаются правильно в этом четвертом сценарии?
Я ищу общее решение, которое надежно поддерживает все четыре сценария.
Неудачные попытки:



пароль (пробел + двойная кавычка)
ВВОД




/7c2'==V@:~U-L%~*.Rv }CvB V'H"HzyAq~'5NGA=
"/7c2'==V@:~U-L%~*.Rv}CvB V'H\"HzyAq~'5NGA="


/7c2'==V@:~U-L%~* .Rv}CvB V'H"HzyAq~'5NGA=
\"/7c2'==V@:~U-L%~*.Rv}CvB V'H"HzyAq~'5NGA=\"


/7c2'==V@:~U-L%~* .Rv}CvB V'H"HzyAq~'5NGA=
\"/7c2'==V@:~U-L%~*.Rv}CvB V'H\\\"HzyAq~'5NGA=\"




Подробнее здесь: https://stackoverflow.com/questions/793 ... parameters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»