如果循环体中的命令完成得太快,则写入进度将不会显示进度条。
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 :(得分:0)
如果之后还有其他命令运行,它就不会关闭它。
尝试在for之后添加睡眠,或者可以使用
Read-Host 'Press Enter to Continue'
一旦所有进程完成,它将关闭,或者您可以在运行时使用
提前关闭它Write-Progress -Activity 'xyz' -Completed