2017-10-12 161 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都不会这样做。我可以在循环后添加睡眠。 –