gpt4 book ai didi

powershell - 使用 Start-Process 捕获标准输出和错误

转载 作者:行者123 更新时间:2023-12-02 23:04:16 25 4
gpt4 key购买 nike

访问 StandardErrorStandardOutput 属性时,PowerShell 的 Start-Process 命令是否存在错误?

如果我运行以下命令,我不会得到任何输出:

$process = Start-Process -FilePath ping -ArgumentList localhost -NoNewWindow -PassThru -Wait
$process.StandardOutput
$process.StandardError

但是如果我将输出重定向到文件,我会得到预期的结果:

$process = Start-Process -FilePath ping -ArgumentList localhost -NoNewWindow -PassThru -Wait -RedirectStandardOutput stdout.txt -RedirectStandardError stderr.txt

最佳答案

就是这样Start-Process是出于某种原因而设计的。这是一种无需发送到文件即可获取它的方法:

$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "ping.exe"
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$pinfo.Arguments = "localhost"
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$stdout = $p.StandardOutput.ReadToEnd()
$stderr = $p.StandardError.ReadToEnd()
Write-Host "stdout: $stdout"
Write-Host "stderr: $stderr"
Write-Host "exit code: " + $p.ExitCode

关于powershell - 使用 Start-Process 捕获标准输出和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com