Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Auswahlmenü in Batchdatei





Frage

Hi ich möchte in einer Batchdatei ein Menü programmieren, mit der ich den weiteren Verlauf von irgendetwas auswählen kann. Zum Beispiel als autorun-Datei, dass beim CD-Einlegen ein Menü kommt, in etwa 1. Programm x ausführen 2. CD-Hauptverzeichnis öffnen... je nachdem was ich auswähle, wird das dann ausgeführt. In der config.sys kann man so etwas machen, aber weil ich das nicht beim Systemstart machen will, bräuchte ich die Befehle für eine Batchdatei. Ich glaub, ich hab irgendwo so einen Beitrag schon gesehen, aber ich finde ihn nicht... help! gruß bastian

Antwort 1 von Ultra Violance

Hallo Bastian,
zu diesem Problem brauche ich auch eine Lösung.
Leider geht das mit menuitem nur bei Bootbaren Medium z.B einer Bootable-CD, oder Diskette

MFG
Ultra Violance


Antwort 2 von Ultra Violance

Hallo Bastian,

du musst über Choice abfragen gehen Z.b 1. Programm X ausführen (J/N) u.s.w.

Oder du kannst dir was mit Qbasic Programmieren.

MFG:

Ultra.Violance

Antwort 3 von _gau_

Wie Ultra Violance schon sagte - mit CHOICE.COM geht das.
Folgende Beispiel-Batch würde sowas bewerkstelligen:

-----------------
@echo off
echo.
echo Auswahlmenü
echo.
echo 1. Programm "Notepad" ausführen
echo 2. CD-Hauptverzeichnis öffnen
echo 3. CD-Player starten
echo 4. Menü beenden
echo.
choice /n /c:1234 "Bitte die entsprechende Zahl drücken: "
if errorlevel 4 goto ende
if errorlevel 3 goto play
if errorlevel 2 goto ordner
start notepad.exe
goto ende
:ordner
start e:goto ende
:play
start cdplayer.exe
:ende
----------------

Die ECHO-Zeilen zeigen erstmal die Auswahlmöglichkeiten an.
Der CHOICE-Befehl setzt je nach gedrückter Taste die Variable "Errorlevel" auf den entsprechenden Wert (Zählung von hinten beginnend).
Diese Variable wird dann mit "if" abgefragt und es wird zur entsprechenden Kommandozeile gesprungen (1 kann man weglassen, da es dann einfach in der folgenden Zeile weitergeht).
Dabei MUSS die Abfrage "if errorlevel" in absteigender Reihenfolge sein.

Du kannst dir auch mal mit "choice /?" die möglichen Befehlsschalter anzeigen lassen.

Wenn du dazu noch weitere Erläuterungen brauchst, mußt du noch mal posten...

Steffen

Antwort 4 von Joe_69

Hi!

Und wenn Du ganz am Ende noch

CLS

einfügst, dann schliesst sich das DOS-Fenster automatisch, nachdem man eine Auswahltaste gedrückt hat.


mfg Joe

Antwort 5 von _gau_

Irgendwie sind da zwei Zeilen zusammengerutscht...

Soll heißen:
.
.
.
start e:\
goto ende
.
.
.

Steffen

Antwort 6 von bastian

Hallo nochmal
hat alles so geklappt, wie ich wollte. Wenn ich aber mit choice eine Abfrage mit ja/nein machen will, wie muss die Batchdatei weitergehen.
z.B
choice Möchten sie weitere Einstellungen machen?
Standardauswahl ist in dem Fall [j/n]
wenn ich dann eingebe
if errorlevel j call batch.bat
heißt es
"j" ist an dieser Stelle syntaktisch nicht verarbeitbar.
Was muss ich dann machen, dass bei j die batch.bat aufgerufen wird, bei n aber der Batch geschlossen wird?

gruß bastian

Antwort 7 von _gau_

Hi bastian,

auch bei der Standardauswahl [ja/nein] wird als Errorlevel eine Zahl zurückgegeben und die if-Abfrage lautet immer "if errorlevel Zahl". Dabei ist die erste mögliche Taste die Nummer 1, dann die 2, usw.
Bei [j/n] entspricht also "j" der 1 und "n" der 2.

choice Möchten sie weitere Einstellungen machen?
if errorlevel 2 goto ende
if errorlevel 1 call batch.bat
:ende

Du mußt auch immer zuerst die höheren Rückgabewerte behandeln. Im obigen Beispiel also zuerst die Aktion für Taste "n". Machst du das nicht, dann würde die batch.bat auch bei Wahl von "n" ausgeführt.

Steffen

Antwort 8 von bastian

Dankeschön, jetzt läuft alles.
Falls übrigens jemand so einen Batch als Autostartdatei fürs CD-Laufwerk verwenden will, sollte er die choice.com mit auf die CD kopieren, da dieser Befehl bei WinXP nicht mehr dabei ist.

gruß bastian