Benutzer mit den meisten Antworten
Menüführung in der Kommandozeile

Frage
-
Hallo!
Ich möchte eine Menü für die Konsole erstellen und steh vor folgendem Problem
Es wird eine Auswahl von verfügbaren Datenbanken dargestellt. in etwa so:
Verfuegbare Datenbanken: ------------------------ 1. information_schema 2. test 3. world
Nun soll der Nutzer mit Hilfe der Ziffer die Datenbank auswählen können. Sobald er aber eine Falscheingabe macht, wie z.B. eine 4 oder ein anderes Zeichen wie eine Ziffe, soll die Eingabeaufforderung wieder erfolgen. Nun habe ich verschiedene Versuche mit while schleifen ausprobiert und auch mit do until usw. So richtig zufrieden stellen ist dies alles nicht. Eigentlich bin ich kein liebhaber von goto und das gibt es auch offenbar nicht mehr in der Powershell. ICh habe leider keine Idee das Problem zu lösen.
Aktuell sieht es so aus. Beutetet aber, dass die Bedingung in while nicht erfüllt wird, da die Eingabe ja noch nicht erfolgt ist.
$connStrg=getConncetionStrg #Create connectionstring $databases=getDatabases($connStrg) #get Databases printDatabases($databases)# print databases while (-not (isNumeric($db_choice))-or ($db_choice -gt $databases.length)){ [Int]$db_choice= Read-Host "Auswahl der Datenbank" Write-Host "length"$databases.length }
Über einen Lösungsvorschlag für dieses Problem würde ich mich sehr freuen
VG niesel
Antworten
-
Hab das Problem gelöst:
do { $db_choice= Read-Host "Auswahl der Datenbank" $is_num=isNumeric($db_choice) if ((($is_num -ne "false")-or ($db_choice -gt $databases.length)) -and ($db_choice.length -gt 0)) { Write-Host "Bitte Eingabe ueberprefen" } } while( ($is_num -ne "false") -or ($db_choice -gt $databases.length))
Trotzdem Danke für die Mühe
VG niesel
- Als Antwort markiert nieselfriem Donnerstag, 27. März 2014 13:32
Alle Antworten
-
Am 26.03.2014 schrieb nieselfriem:
Ich möchte eine Menü für die Konsole erstellen und steh vor folgendem Problem
Es wird eine Auswahl von verfügbaren Datenbanken dargestellt. in etwa so:
Verfuegbare Datenbanken: ------------------------ 1. information_schema 2. test 3. world
Erkläre uns doch mal was deine Anforderung ist. Weshalb willst Du das
mit Powershell lösen? Was soll nach Verbindung zur Datenbank weiter
passieren?
Servus
Winfried
Gruppenrichtlinien
WSUS Package Publisher
HowTos zum WSUS Package Publisher
NNTP-Bridge für MS-Foren -
Hab das Problem gelöst:
do { $db_choice= Read-Host "Auswahl der Datenbank" $is_num=isNumeric($db_choice) if ((($is_num -ne "false")-or ($db_choice -gt $databases.length)) -and ($db_choice.length -gt 0)) { Write-Host "Bitte Eingabe ueberprefen" } } while( ($is_num -ne "false") -or ($db_choice -gt $databases.length))
Trotzdem Danke für die Mühe
VG niesel
- Als Antwort markiert nieselfriem Donnerstag, 27. März 2014 13:32