none
Menüführung in der Kommandozeile RRS feed

  • 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

    Mittwoch, 26. März 2014 09:05

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
    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

    Mittwoch, 26. März 2014 09:28
  • 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
    Donnerstag, 27. März 2014 13:32