最佳答案
我正在尝试从 PowerShell 运行一个程序,等待退出,然后访问 ExitCode,但我没有多少运气。我不想使用 -Wait
和 Start-Process
,因为我需要在后台进行一些处理。
下面是一个简化的测试脚本:
cd "C:\Windows"
# ExitCode is available when using -Wait...
Write-Host "Starting Notepad with -Wait - return code will be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)
Write-Host "Process finished with return code: " $process.ExitCode
# ExitCode is not available when waiting separately
Write-Host "Starting Notepad without -Wait - return code will NOT be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru)
$process.WaitForExit()
Write-Host "Process exit code should be here: " $process.ExitCode
运行此脚本将导致启动 记事本。这是手动关闭后,退出代码将被打印,它将再次启动,而不使用 -wait
。退出时不提供退出代码:
Starting Notepad with -Wait - return code will be available
Process finished with return code: 0
Starting Notepad without -Wait - return code will NOT be available
Process exit code should be here:
我需要能够在启动程序和等待程序退出之间执行额外的处理,所以我不能使用 -Wait
。如何做到这一点,我仍然可以访问。该进程的 ExitCode 属性吗?