這是我在 Windows 10 上.msi
使用管理 PowerShell 進行安裝的嘗試。msiexec
我已經為 2 個驅動器中的每一個驅動器做了 7 次,C:
並且D:
(總共 14 次)使用不同的參數代替ARG
和相同的所需路徑值。
模板:PS C:\WINDOWS\system32> msiexec /i D:\users\username\downloads\soft\publisher\softwarename\software.msi /passive ARG="D:\Soft\publisher\softwarename"
ARG
s:
TARGETDIR
,,,,,,,,,INSTALLDIR
INSTALLPATH
INSTALLFOLDER
INSTALLLOCATION
APPLICATIONFOLDER
APPDIR
- 當在參數中設定的相同磁碟機上執行時:安裝在此磁碟機上的預設資料夾中(例如
D:\Blender Foundation\Blender\2.81\
) - 從不同的驅動器運行時:似乎什麼都不做
- 當在參數中設定的相同磁碟機上執行時:安裝在此磁碟機上的預設資料夾中(例如
這種行為有解決方法嗎?
更新1
在另一個套件(Blender 2.81)上測試了它.msi
,因為先前的建置不正確。上面列出的參數名稱都沒有達到目的。即使是從驅動器安裝的每個安裝都D:
位於C:
.
更新2
對於 Blender 2.81,我想,對於任何.msi
包含 的東西WiX
,它都是INSTALL_ROOT
.您可以嘗試msiexec /lp! <msi_property_logfile> /i <msi_name>
使用any.msi
來找出安裝路徑參數的名稱。謝謝日元兌陽和他的回答這裡。
答案1
為了使其正常運作,您需要執行以下步驟:
- 取得安裝程式中使用的公共屬性清單
.msi
:PS >.\YourAppInstaller.msi /lp! YourAppInstall.log
;- 取消安裝;
.log
在上一步產生的文件中尋找公共屬性;.msi
從命令列 運行公共財產:- 如果您的屬性值包含空格,請將其包含在反引號+引號對 (
`"
)中 - 例子:
PS >.\YourAppInstaller.msi YOUR_PROP=`"value with spaces`"
- 如果您的屬性值包含空格,請將其包含在反引號+引號對 (
如果是Blender靜默安裝,若要指定安裝路徑,您需要呼叫安裝程序,如下所示(作為範例):
.\blender-3.4.1-windows-x64.msi INSTALL_ROOT=`"C:\Program Files\Blender Foundation\Blender\`"
這樣它就會了解您想要將其安裝在哪裡。