Einfache Inkrement - /Dekrement-Zähler

Ich würde gerne einen einfachen Zähler in der PowerShell. Es muss der Benutzer gefragt, ob Sie möchten eine höhere oder niedrigere Zahl.

Die startnummer muss 0 sein, und es kann nicht geringer als null oder größer als 10 ist. Wenn der Benutzer wünscht, eine höhere Zahl, es müssen erhöhen Sie die Anzahl mit 1, wenn niedrigere verringern, indem 1. Dann muss es in der Lage zu stoppen in der gewünschten Anzahl. Mit dieser Nummer kann ich einen registry-Wert.

Ich weiß nicht, einen effizienten Weg für die Eingabeaufforderung an den Benutzer. Ich kann die Read-Host - cmdlet, um zu Fragen, ob Sie den Begriff "höher" oder "niedriger", aber es ist ein effizienter Weg, dies zu erreichen?

Beispielsweise

$i = 0

while (($i -gt 0) -or ($i -lt 10)){
    $j = Read-Host "The current number is $i, would you like a higher/lower number, or quit?"

    if ($j -eq "higher") {
        $i++
        Write-Host "The current number is $i"
    } elseif ($j -eq "lower") {
        $i--
        Write-Host "The current number is $i"
    } elseif ($j -eq "quit") {
        Write-Host "Final number is: $i"
        break
    }
}

Wie kann ich dies tun?

  • Effizienz ist in den Händen der Betreiber. Wenn ich arbeite in einer Konsole (PowerShell) Umwelt, aufspringen ein Dialogfeld wie unten vorgeschlagen, ist weniger effizient, weil es bedeutet, dass ich eine hand von der Tastatur und verschieben Sie es an der Maus (wenn man Tastatur-shortcuts auf den dialog-nicht ohne weiteres ersichtlich). Warum nicht fügen Sie einen alias für "höher" und "niedriger", wie "l" & "h" und/oder up - /down-und/oder u/d??? Sonstige Hinweis: Sie haben eine Menge Redundanz in Ihren verschachtelten if/else-Anweisungen. Verwenden Sie eine switch auf $j zu tun, die Inkrement - /Dekrement-und speichern Sie Ihre Ausgabe für das Ende der Schleife.
  • Write-Host böse ist,
Schreibe einen Kommentar