Adatbekérés (Read-Host)

A szkriptek esetében gyakori, hogy egy kis interakciót várunk el tőlük, azaz ne kelljen mindig parancssorban felparaméterezni őket, hanem kérdezzék meg tőlünk, hogy mit szeretnének. A következő példában egy kis interaktív vezérlést mutatok be egy kis menüstruktúra segítségével:

do

{

     Write-Host "========================================================="

     Write-Host "0 - Folyamatok listázása"

     Write-Host "1 - Szolgáltatások listázása"

     Write-Host "2 - Folyamat indítása"

     Write-Host "3 - Folyamat leállítása"

     Write-Host "9 - Kilépés"

     $v = Read-Host

     Write-Host "========================================================="

     switch ($v)

     {

          "0" {Get-Process}

          "1" {Get-Service}

          "2" {&(Read-Host "Folyamat neve")}

          "3" {Stop-Process -name (&Read-Host "Folyamat neve")}

          "9" {break}

          default {Write-Host "Érvénytelen billentyű!";break  }

     }

}    while ($v -ne "9")

A szkript egy jó kis hátul tesztelő do-while ciklus, ami egészen addig fut, amíg a középtájon található Read-Host  cmdletnek nem adunk át egy 9-est.

Ha 0, 1, 2, 3 értékek valamelyikét adjuk be neki, akkor egy switch kifejezés a megfelelő PowerShell cmdletet futtatja le. Ráadásul bizonyos parancsok még további paramétert igényelnek, így azokat egy újabb Read-Host kéri be.

A Read-Host nem billentyű leütésére vár, hanem komplett sort kér be Enter leütéséig, és addig vár, amíg ezt meg nem kapja.  A fenti példában látható, hogy nem muszáj a Read-Host kimenetét változóba tölteni, azt azon melegében is felhasználhatjuk.

Például a „2”-es választásával rögtön meghívjuk azt, amit begépeltünk:

&(Read-Host "Folyamat neve")

Ugye itt megint használjuk a „végrehajtatás” operátorát, az & jelet.

A Read-Host-nak van egy szöveg paramétere, ezt teszi fel kérdésként a sor beadására való várakozás előtt.



Word To HTML Converter