私はPowerShellスクリプトを使ってオートデスク製品をインストールしていますが、何か問題があります。Powershellは引数付きMSIを呼び出します
私はこれをさまざまな方法で試してみましたが、エラーが続いています。
(Start-Process "msiexec.exe" -ArgumentList ""/i $dirFiles\ABDS2017\Img\x64\RVT\RVT.msi INSTALLDIR="C:\Program Files\Autodesk\" ADSK_SETUP_EXE=1 /qb!"" -NoNewWindow -Wait -PassThru).ExitCode
エラーがパラメータに引数を検証することはできません二重引用符を使用して
は「ArgumentListは」引数はnullまたは空です。インストールディレクトリ
$RevitInstallDir = "C:\Program Files\Autodesk\"
(Start-Process "msiexec.exe" -ArgumentList "/i $dirFiles\ABDS2017\Img\x64\RVT\RVT.msi INSTALLDIR=$RevitInstallDir ADSK_SETUP_EXE=1 /qb!" -NoNewWindow -Wait -PassThru).ExitCode
を定義する変数を使用し
は私がします。msiexec /オプション必須パラメータエラーを取得し、これを行います。また、この試み
は、私は位置パラメータを受信パス
(Start-Process "msiexec.exe" -ArgumentList "/i $dirFiles\ABDS2017\Img\x64\RVT\RVT.msi INSTALLDIR="C:\Program Files\Autodesk\" ADSK_SETUP_EXE=1 /qb!" -NoNewWindow -Wait -PassThru).ExitCode
に引用した単一引用符は、引数Cを受け入れることを見つけることができません。インストールディレクトリ
(Start-Process "msiexec.exe" -ArgumentList "/i $dirFiles\ABDS2017\Img\x64\RVT\RVT.msi INSTALLDIR='C:\Program Files\Autodesk\' ADSK_SETUP_EXE=1 /qb!" -NoNewWindow -Wait -PassThru).ExitCode
上の単一引用符を使用して\プログラム
これを行うには、msiexec/option必須パラメータエラーが表示されます。私はこれを行う場合は
は外
(Start-Process "msiexec.exe" -ArgumentList '/i $dirFiles\ABDS2017\Img\x64\RVT\RVT.msi INSTALLDIR="C:\Program Files\Autodesk\" ADSK_SETUP_EXE=1 /qb!' -NoNewWindow -Wait -PassThru).ExitCode
に単一引用符を使用して、それが働いてから$ dirFiles変数を防ぎます。
私がStart-Processを使用しているのは、インストーラが多数あり、インストーラが終了するまで1人のインストーラが待つようにしたいからです。どんな助けもありがとう!ありがとう
EDIT:Nevermind、私はそれを考え出した。インストールディレクトリ
周り
(Start-Process "msiexec.exe" -ArgumentList "/i $dirFiles\ABDS2017\Img\x64\RVT\RVT.msi INSTALLDIR=""C:\Program Files\Autodesk\"" ADSK_SETUP_EXE=1 /qb!" -NoNewWindow -Wait -PassThru).ExitCode
二重引用符がここからアイデアを得ました。・プロセスを開始するためにそれを渡し、変数に引数全体を格納してhttps://blogs.technet.microsoft.com/heyscriptingguy/2015/06/20/weekend-scripter-understanding-quotation-marks-in-powershell/
おかげ
「開始プロセス」は必要ありません。 –