如何清除屏幕上的某些内容?

时间:2016-07-25 22:15:55

标签: powershell

cls

除了把它放在循环或函数中之外,我有没有办法完成这项工作?在实际的代码中,我想在屏幕顶部保留一些输出以供参考(它不能放在函数内),而函数会拉动一些数据并每4秒刷新一次。 在这里,因为我使用updatable='true'它清除屏幕上我不想发生的一切。我只需要清除函数的输出。

2 个答案:

答案 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