2017-10-12 22 views
0

書き込み進行中はループ本体内のコマンドがあまりにも迅速に完了した場合、プログレスバーを表示しません。プログレスバーが表示されない

function process-item($item) 
{ 
    // do something 
} 

$items = 0..100 
$cnt = $items.Count 
for($i = 0; $i -lt $cnt; ++$i) 
{ 
    Write-Progress -Activity "Item #$i" -PercentComplete ($i/$cnt*100) -Status "Processing" 
    process-item $items[$i] 
} 

上記のコードが速すぎるため、進行状況バーが表示されません。よくそれはおそらく表示され、その後閉じますが、私はそれを見ていないほど速いです。 sleepコマンドを使用して

は役立ちますが、私はプログレスバーが表示されるだけのようにsleepコマンドを使用する必要はありません。

明示的にクローズまたは押されるまでプログレスバーを維持するためにPSを指示する方法はありますか?

答えて

0

その後実行されている他のコマンドがある場合はそれを閉じないであろう。

てみてください、あなたのために後に睡眠を追加するか、すべてのプロセスが完了したら、それは閉じます、またはあなたが

Write-Progress -Activity 'xyz' -Completed 
+0

を使用して、実行時に途中でそれを閉じることができ

Read-Host 'Press Enter to Continue' 

を使用することができますありがとうございました!ループが機能した後にスリープしますが、他のコマンドレットはそれを実行しません。私はループの後に睡眠を追加することができます。 –

関連する問題