1

外部プログラムから stdout を取得して Powershell に戻す必要があります。この質問から@Andy Arismendiによって提供された回答を見つけて使用しています(同じログファイルに追加する標準およびエラー出力のリダイレクト)。

以下のスニペットは私にとってはうまく機能しますが、外部実行可能ファイルはバックグラウンドで静かに実行されます。隠れないようにする方法はありますか?

$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "myjob.bat"
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$pinfo.Arguments = ""
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$output = $p.StandardOutput.ReadToEnd()
$output += $p.StandardError.ReadToEnd()
$output | Out-File $myLog -Append
4

1 に答える 1

0

はい、に設定できますUseShellExecutetrue、入力ストリームと出力ストリームをリダイレクトすることはできません。

于 2012-07-05T18:13:41.340 に答える