Hogyan lehet törölni csak bizonyos tartalmakat a képernyőn?

szavazat
42
Function Test{
    while($true){
    write-host I want this to refresh every time
    Start-Sleep -Seconds 4
    cls
    }
}
Write-Host I want this to be at the screen always
Test

Van mód arra, hogy hogy ez megtörtént más, mint üzembe is a cikluson belül vagy funkció? A tényleges kódot szeretnék tartani bizonyos kiadási tetején a képernyő referencia (nem lehet betenni a funkciót), míg a funkció húz néhány adatot, és frissítse 4 másodpercenként. Itt mióta használja clsazt törli mindent a képernyőn, amit nem szeretnénk, hogy megtörténjen. Csak meg kell, hogy törölje a kimenetet a funkciót.

A kérdést 25/07/2016 21:15
felhasználó
Más nyelveken...                            


2 válasz

szavazat
1

Lenne egy állapotjelző sáv alkalmas? A tényleges összeg nem lehet releváns, mivel a hurok a példában végtelen, de ez nem úgy viselkednek, hasonló ahhoz, amit leírni:

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
Válaszolt 25/07/2016 22:30
a forrás felhasználó

szavazat
0

Ha Write-Progress nem alkalmas, akkor a függvény a globális változók is dolgozik az Ön számára:

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
Válaszolt 26/07/2016 01:21
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more