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.