私はVBからpowershellスクリプトを実行しようとしています。コンソールアプリケーション内で実行されているので、スクリプトの出力を見たいと思っています。私のスクリプト(以下に示す)を使ってpowershellから実行すると、 "Command Sleep Starting"が表示され、5秒間待ってから他のテキストを表示します。PowerShellスクリプトを実行してリアルタイム出力を表示する方法は?
しかし、VB.NETプログラムから実行すると、実行は5秒間待機し、すべてのテキスト出力を一度にダンプします。最初のWrite-Outputコマンドは実行されず、待機してから出力する必要があります。
Write-Output "Command Sleeping Starting"
Start-Sleep -Seconds 5
Write-Output "Command ran successfully"
VB .Netプログラムからスクリプトを実行すると、リアルタイム実行出力を表示する方法はありますか?
私が使用したコードは次のとおりです。
Dim start As New ProcessStartInfo
Dim ScriptsFolder As String = GetKeyValue("ScriptsFolder")
Console.WriteLine(ScriptsFolder.ToString())
start.FileName = "powershell.exe"
start.Arguments = ScriptsFolder + "\" + ScriptFile
start.UseShellExecute = False
start.RedirectStandardOutput = True
start.RedirectStandardError = True
Dim myproc As New Process
myproc.StartInfo = start
myproc.Start()
Dim so As System.IO.StreamReader
Dim se As System.IO.StreamReader
se = myproc.StandardError
so = myproc.StandardOutput
myproc.WaitForExit()
Console.WriteLine(so.ReadToEnd)
Console.WriteLine(se.ReadToEnd)
[誰か](http://stackoverflow.com/questions/8740118/interact-with-powershell-process-called- VB.NETで実行空間をスピンアップするための簡単なスニペットですfrom-java-application/8740564#8740564)はJavaでこれをしようとしていました。プロセスが終了するまでstdoutを読むことができないのですか。 –