标准输出的同步输出

时间:2019-10-18 11:34:12

标签: powershell

我要求在运行较长时间的进程中获得同步输出,因为我创建了以下简单脚本。

我已将以下代码保存在一个名为testout.ps1的文件中。

for ($i=0; $i -le 10; $i++) {
    Start-Sleep -Seconds 1
    Write-Output "hello $i"
}

然后从下面的脚本中调用上面保存的文件(testout.ps1

$COB = New-Object System.Diagnostics.ProcessStartInfo
$COB.FileName = "powershell.exe"
$COB.RedirectStandardError = $true
$COB.RedirectStandardOutput = $true
$COB.UseShellExecute = $false
$COB.CreateNoWindow = $True

$COB.Arguments = "Desktop\testout.ps1"
$COBProc = New-Object System.Diagnostics.Process
$COBProc.StartInfo = $COB
$COBProc.Start() | Out-Null

#@@@@Write-Output "Execution started"
$stdout = $COBProc.StandardOutput.ReadToEnd()

#@@@@Write-Output "Execution Output"
$stderr = $COBProc.StandardError.ReadToEnd()

Write-Output "stdout: $stdout"

期望是它将在进程开始时开始流输出,但在结束过程后给出完整的信息。

0 个答案:

没有答案
相关问题