我有一个简单的问题。我只找到了两种实际运行我的 msi 文件的方法,但它们都不起作用。
密切关注我的使用情况'
and "
.
简而言之,我想要一种方法来做到这一点:
$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 Installer 帮助窗口。
Start-Process msiexec.exe -Wait -ArgumentList "/i '$Basics\Installer_.64 bit_.msi'"
^ 结果:打开通用 Windows Installer 帮助窗口。
Start-Process msiexec.exe -Wait -ArgumentList '/i $Basics\Installer_.64 bit_.msi'
^ 结果:“无法打开此安装包。请验证该包是否存在并且您可以访问它,或者联系应用程序供应商以验证这是一个有效的 Windows Installer 包。”
Start-Process msiexec.exe -Wait -ArgumentList '/i "$Basics\Installer_.64 bit_.msi"'
^ 结果:“无法打开此安装包。请验证该包是否存在并且您可以访问它,或者联系应用程序供应商以验证这是一个有效的 Windows Installer 包。”
Start-Process msiexec.exe -Wait -ArgumentList "/i Installer_.64 bit_.msi"
^ 结果:Works;但是,这是不可接受的,因为我需要能够将变量放入目录中。
Start-Process msiexec.exe -Wait -ArgumentList '/i "C:\Users\Administrator\Downloads\flashdrive\redist\Install (x86 Office)\Installer_.64 bit_.msi"'
^ 结果:Works;但是,这是不可接受的,因为我需要能够将变量放入目录中。
Start-Process msiexec.exe -Wait -ArgumentList "/i C:\Users\Administrator\Downloads\flashdrive\redist\Install (x86 Office)\Installer_.64 bit_.msi"
^ 结果:打开通用 Windows Installer 帮助窗口。
Start-Process msiexec.exe -Wait -ArgumentList "/i .\Installer_.64 bit_.msi"
^ 结果:“无法打开此安装包。请验证该包是否存在并且您可以访问它,或者联系应用程序供应商以验证这是一个有效的 Windows Installer 包。”