2017-10-12 162 views
0

如果循環體中的命令太快,Write-Progress將不會顯示進度條。進度條不顯示

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] 
} 

上面的代碼太快,進度條不會顯示;好吧,它可能會出現,然後關閉,但速度非常快,我沒有看到它。

使用睡眠命令有幫助,但我不想使用睡眠命令,以便進度條可見。

有沒有辦法指示PS保持進度條,直到顯式關閉或按下?

回答

0

如果之後還有其他命令正在運行,它將不會關閉它。

嘗試增加睡眠你對之後,或者你可以使用

Read-Host 'Press Enter to Continue' 

一旦所有的過程都完成將關閉,或者您可以在運行時使用

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

過早關閉謝謝!在循環工作後休眠,但其他任何cmdlet都不會這樣做。我可以在循環後添加睡眠。 –