Du hast hier mehrere Möglichkeiten. Am einfachsten wäre es, ein bestimmtes "Abbruchzeichen" zu definieren, sagen wir "x". Das generelle "Problem" bei einer do-while-Schleife ist, das die while-Bedingung erst am Ende
abgefragt wird, du also deine Abbruchbedingung immer wieder abfragen musst.
Also z.b.:
do{
$a = read-host "Eingabe"
if ($a -eq "x") {break}
$b = read-host "Eingabe"
if ($b -eq "x") {break}
$c = read-host "Eingabe"
if ($c -eq "x") {break}
}while ($true)
Der Abbruch erfolgt nun an einer beliebigen Stelle mit "x"+"Enter". Hinter
while kannst du noch eine zusätzliche Bedingung definieren, momentan wird sie niemals wahr.
Einen Abbruch nach einem reinen "ESC"-Tastendruck kannst du meiner Ansicht nach nur entweder mit Windows-Forms (z.b. einer GUI-Eingabebox) realisieren, oder mit einem eigenen Event, z.b. mit dem PS-Eventing-Cmdlet.
Wenn du Windows-Forms für deine Eingaben verwendest, hast du deutlich mehr Möglichkeiten auf alle möglichen Arten auf Keyboard-Events zu reagieren. Das klingt vielleicht erst mal kompliziert, ist es aber nicht wirklich. Hier ist ein
Beispiel.
Grüße, Denniver
http://bytecookie.wordpress.com/