Ska*_*inz 28 powershell return-value exit-code msiexec
使用BAT/CMD脚本我可以简单地使用"msiexec /i <whatever.msi> /quiet /norestart"然后检查%errorlevel%结果.
与VBScript使用Wscript.Shell对象Run()的方法,我能得到这样的结果:
"result = oShell.Run("msiexec /i ...", 1, True)"
Run Code Online (Sandbox Code Playgroud)
如何使用PowerShell执行此操作?
rav*_*nth 50
我会在Start-Process中将其包装起来并使用生成的流程对象的ExitCode属性.例如
(Start-Process -FilePath "msiexec.exe" -ArgumentList "<<whatever>>" -Wait -Passthru).ExitCode
Run Code Online (Sandbox Code Playgroud)
Joe*_*oey 18
$LastExitCode
Run Code Online (Sandbox Code Playgroud)
要么
$?
Run Code Online (Sandbox Code Playgroud)
取决于你所追求的.前者是整数,后者只是一个布尔值.此外,$LastExitCode仅填充正在运行的本机程序,同时$?通常会告知最后一个命令是否成功运行 - 因此它也将设置为cmdlet.
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57096 次 |
| 最近记录: |