cls
除了把它放在循环或函数中之外,我有没有办法完成这项工作?在实际的代码中,我想在屏幕顶部保留一些输出以供参考(它不能放在函数内),而函数会拉动一些数据并每4秒刷新一次。
在这里,因为我使用updatable='true'
它清除屏幕上我不想发生的一切。我只需要清除函数的输出。
答案 0 :(得分:1)
进度条适合吗?实际百分比可能不相关,因为示例中的循环是无限的,但它的行为与您描述的类似:
Function Test{
while ($true) {
Write-Progress -Activity "I want this to be at the screen always" -Status "I want this to refresh every time"
Start-Sleep -Seconds 4
}
}
Write-Progress -Activity "I want this to be at the screen always"
Test
答案 1 :(得分:0)
如果Write-Progress不合适,那么使用全局变量的函数可能适合您:
Function Clear-HostCustom ($DisplayText)
{
If ($DisplayText)
{
$global:DisplayTextGlobal = $DisplayText
}
Clear-Host
Write-Host $global:DisplayTextGlobal
}
Function Test{
while($true){
write-host "I want this to refresh every time"
Start-Sleep -Seconds 4
Clear-HostCustom
Start-Sleep -Seconds 1
}
}
Clear-HostCustom "I want this to be at the screen always"
Test