28

スクリプトを使用すると、BAT/CMD簡単に使用して結果"msiexec /i <whatever.msi> /quiet /norestart"を確認できます。%errorlevel%

では、オブジェクトメソッドVBScriptを使用して、次のような結果を得ることができます。Wscript.ShellRun()

"result = oShell.Run("msiexec /i ...", 1, True)"

PowerShell でこれを行うにはどうすればよいですか?

4

3 に答える 3

51

これを Start-Process にまとめて、結果のプロセス オブジェクトの ExitCode プロパティを使用します。例えば

(Start-Process -FilePath "msiexec.exe" -ArgumentList "<<whatever>>" -Wait -Passthru).ExitCode
于 2010-11-10T15:41:04.237 に答える
17
$LastExitCode

また

$?

あなたが求めているものに応じて。前者は整数、後者は単なるブール値です。さらに、$LastExitCode実行中のネイティブ プログラムに対してのみ入力されますが、$?通常は最後のコマンド実行が成功したかどうかを示します。そのため、コマンドレットに対しても設定されます。

PS Home:\> cmd /c "echo foo"; $?,$LASTEXITCODE
foo
True
0
PS Home:\> cmd /c "ech foo"; $?,$LASTEXITCODE
'ech' is not recognized as an internal or external command,
operable program or batch file.
False
1
于 2010-11-08T14:17:30.860 に答える