Alternative Betriebssysteme 1.409 Themen, 9.972 Beiträge

DOS, Menü in die autoexec.bat einbauen...

minbari / 6 Antworten / Baumansicht Nickles

Moin,
ja der Titel sagt es ja bereits, ich will in einen Uralt-Rechner ein Menü in die Autoexec.bat
einbauen. Leider habe ich die ganze DOS Literatur schon lange entsorgt.
Ich bekomme es nicht zum laufen. Kann jemand helfen?

Folgendes habe ich versucht:

@echo off
cls
echo Bitte auswählen:
echo 1) DOS echo 2) NC
echo 3) DELL
CHOICE /C:12 /n if errorlevel 1 goto DOS if errorlevel 2 goto NC
if errorlevel 3 goto DELL
goto ende :DOS c:\ goto ende :NC nc.exe goto ende
:DELL
delldiag.exe
reboot
:ENDE

Danke für die Hilfe!!

minbari

bei Antwort benachrichtigen
PeterP1 minbari

„DOS, Menü in die autoexec.bat einbauen...“

Optionen

Hallo,

nach meiner Erinnerung werden die Tastatureingaben nach CHOICE nicht als Errorlevel übergeben; deshalb funktioniert das so nicht.
Versuche es mal mit MENUITEM in der CONFIG.SYS, siehe hier:

http://www.i8086.de/dos-befehle/menuitem.html

Gruß
Peter

bei Antwort benachrichtigen
mi~we minbari

„DOS, Menü in die autoexec.bat einbauen...“

Optionen

Zunächst muss es natürlich

CHOICE /C:123 /n

heißen, aber das war wohl nur ein Schreibfehler. Der Knackpunkt dürfte das hier sein:

"IF ERRORLEVEL construction has one strange feature,......: it returns TRUE if the return code was equal to or higher than the specified errorlevel."

http://www.robvanderwoude.com/errorlevel.php

Wenn du also bei deiner CHOIC-Abfrage 2 eingibst ( damit ist also ERRORLEVEL = 2 ), liefert bereits IF ERRORLEVEL 1 den Wert TRUE und deine Batch springt zur Marke DOS

"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
bei Antwort benachrichtigen
mi~we

Nachtrag zu: „Zunächst muss es natürlich CHOICE C:123 nheißen, aber das...“

Optionen

Kleiner Nachtrag: wenn du also einfach die Reihenfolge der IF ERRORLEVEL Abfragen umkehrst, sollte es funktionieren. Also so:

if errorlevel 3 goto DELL
if errorlevel 2 goto NC
if errorlevel 1 goto DOS
"Es wäre dumm, sich über die Welt zu ärgern. Sie kümmert sich nicht darum." (Marc Aurel)
bei Antwort benachrichtigen
Alpha13 minbari

„DOS, Menü in die autoexec.bat einbauen...“

Optionen
http://www.computerhope.com/batch.htm#03
http://www.computerhope.com/choicehl.htm


Etliche Fehler...

Der IF ERRORLEVEL Befehl fragt auf größer oder gleich ab, dehalb muß der größte Wert da immer zuerst verarztet werden!
@echo off
cls
echo Bitte auswählen:
echo 1) DOS echo 2) NC
echo 3) DELL
CHOICE /N /C:123
IF ERRORLEVEL ==3 GOTO DELL
IF ERRORLEVEL ==2 GOTO NC
IF ERRORLEVEL ==1 GOTO DOS GOTO ENDE :DOS c:\ goto ENDE :NC nc.exe goto ENDE
:DELL
C:\delldiag.exe
reboot
:ENDE

Müßte so laufen, ob die Gleichheitszeichen wirklich sein müßen keine Ahnung
und zum Testen hab Ich keinen Bock.

Und reboot ist kein DOS Befehl...


bei Antwort benachrichtigen
Alpha13

Nachtrag zu: „http: www.computerhope.com batch.htm 03http:...“

Optionen
bei Antwort benachrichtigen
minbari Alpha13

„http: www.computerhope.com batch.htm 03http:...“

Optionen

Jo Danke, das hat geholfen!!!

reboot ist eine Datei aus dem WEB, welche den  Rechner neu starte... ;-)

minbari

bei Antwort benachrichtigen