簡単なコンソールタイマー表示を作成しようとしています。
...
$rpt = $null
write-status "Opening report", $rpt
# long-running
$rpt = rpt-open -path "C:\Documents and Settings\foobar\Desktop\Calendar.rpt"
...
function write-status ($msg, $obj) {
write-host "$msg" -nonewline
do {
sleep -seconds 1
write-host "." -nonewline
[System.Windows.Forms.Application]::DoEvents()
} while ($obj -eq $null)
write-host
}
この例では「Openingreport....」が生成されますが、ループが終了することはありません。
おそらくコールバックまたはデリゲートを使用する必要がありますが、この状況でのパターンはわかりません。
私は何が欠けていますか?