0

.exeとしてパッケージ化されたpowershell GUIアプリケーションを作成しました。スクリプトは他のスクリプトを呼び出し、呼び出されたスクリプトが開始および終了すると、読み取り専用のリッチテキスト ボックスを介してユーザーに通知します。

問題は、最初のスクリプトの開始を示すメッセージのみが表示され、すべてのスクリプトの実行が完了するまで何も表示されないことです。

これが私のコードです:

foreach ($item in $checkedlistbox1.CheckedItems) {
        $richtextbox1.AppendText("Installing " + [IO.Path]::GetFileNameWithoutExtension($item) + "...")
        $richtextbox1.Update()
        $path = $scriptdir+ "\" + $item + ".exe"
        [System.Diagnostics.Process]::Start($path)
        $Process = (Get-Process | `
                        Where-Object { $_.ProcessName -ieq [IO.Path]::GetFileNameWithoutExtension($item) })
        $Process.WaitForExit() 
        $richtextbox1.AppendText("Done."+[char]13+[char]10)
        $richtextbox1.Update()
    }

ここで何が間違っているのだろうか:(

4

1 に答える 1

1

これを修正するための汚い方法がよく見つかりました:

[System.Windows.Forms.Application]::DoEvents()

リッチテキストボックスを追加した直後。

于 2012-09-24T11:08:16.133 に答える