कैसे स्क्रीन से केवल कुछ सामग्री स्पष्ट करने के लिए?

वोट
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

वहाँ एक रास्ता के लिए मुझे पाने के इस पाश या समारोह के अंदर भी डालने के अलावा अन्य किया है? वास्तविक कोड में मैं, संदर्भ के लिए स्क्रीन (यह समारोह के अंदर नहीं रखा जा सकता) के शीर्ष पर कुछ उत्पादन रखने के समारोह कुछ डेटा खींचती है, जबकि और हर 4 सेकंड ताज़ा करने के लिए चाहते हैं। यहाँ के बाद से मैं का उपयोग clsयह स्क्रीन जो मैं ऐसा नहीं करना चाहता पर सब कुछ साफ करता है। मैं केवल समारोह से उत्पादन स्पष्ट करने की जरूरत है।

25/07/2016 को 21:15
उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
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
25/07/2016 को 22:30
का स्रोत उपयोगकर्ता

वोट
0

राइट-प्रगति उपयुक्त नहीं है तो वैश्विक चर का उपयोग कर एक समारोह आप के लिए काम कर सकते हैं:

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
26/07/2016 को 01:21
का स्रोत उपयोगकर्ता

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