У меня простая проблема.Я нашел только два способа запуска моего msi-файла, и ни один из них не сработает.
Обратите особое внимание на использование '
и "
.
ПростоПоместите, я хочу способ сделать это:
$Basics = "$PSScriptRoot"
Start-Process msiexec.exe -Wait -ArgumentList "/i $Basics\Installer_.64 bit_.msi /passive /norestart"
Однако строка, передаваемая -ArgumentList
, недействительна, и я не уверен, почему.Я сделал много попыток, как вы можете видеть ниже, пытаясь понять это правильно.
$Basics
на данный момент является просто копией $PSScriptRoot
, но я хочу иметь отдельную переменную на случай, если яизмените его в будущем.
/passive /norestart
удалено для целей тестирования.
Примечание. Это не имя файла установщика.Это сделано только для того, чтобы содержать все странные символы (.
, _
,
), которые есть у некоторых установщиков, которые я пытаюсь запустить с этим.В основном наихудший сценарий.
Кроме того, заранее извините, что это много читается, я не совсем уверен, как лучше отформатировать его.Идите вперед и отредактируйте, если вы знаете лучший способ.
Попытки:
Не в порядке, организованном, какой это была попытка.Моя первая попытка была "/i '$Basics\Installer_.64 bit_.msi'"
Start-Process msiexec.exe -Wait -ArgumentList "/i $Basics\Installer_.64 bit_.msi"
^ Результат: открывается общее окно справки установщика Windows.
Start-Process msiexec.exe -Wait -ArgumentList "/i '$Basics\Installer_.64 bit_.msi'"
^ Результат: открывается общее окно справки установщика Windows.
Start-Process msiexec.exe -Wait -ArgumentList '/i $Basics\Installer_.64 bit_.msi'
^ Результат: «Не удалось открыть этот установочный пакет. Убедитесь, что пакет существует и вы можете получить к нему доступ, или обратитесь к поставщику приложения, чтобы убедиться, что это действительный пакет установщика Windows.»
Start-Process msiexec.exe -Wait -ArgumentList '/i "$Basics\Installer_.64 bit_.msi"'
^ Результат: «Не удалось открыть этот установочный пакет. Убедитесь, что пакет существует и вы можете получить к нему доступ, или обратитесь к поставщику приложения, чтобы убедиться, что это действительный пакет установщика Windows.»
Start-Process msiexec.exe -Wait -ArgumentList "/i Installer_.64 bit_.msi"
^ Результат: Работы ;Однако это неприемлемо, поскольку мне нужно иметь возможность поместить переменную в каталог.
Start-Process msiexec.exe -Wait -ArgumentList '/i "C:\Users\Administrator\Downloads\flashdrive\redist\Install (x86 Office)\Installer_.64 bit_.msi"'
^ Результат: Работает ;Однако это неприемлемо, так как мне нужно иметь возможность поместить переменную в каталог.
Start-Process msiexec.exe -Wait -ArgumentList "/i C:\Users\Administrator\Downloads\flashdrive\redist\Install (x86 Office)\Installer_.64 bit_.msi"
^ Результат: открывает общее окно справки установщика Windows.
Start-Process msiexec.exe -Wait -ArgumentList "/i .\Installer_.64 bit_.msi"
^Результат: «Не удалось открыть этот установочный пакет. Убедитесь, что пакет существует и к нему можно получить доступ, или обратитесь к поставщику приложения, чтобы убедиться, что это действительный пакет установщика Windows.»