buddha
Goto Top

Autoexec.bat endet in Endlosschleife

Hallo,

ich bin im Moment dabei mir einen DOS-USB Stick für die Arbeit zu erstellen. Leider endet das laden der autoexec.bat in einer Endlosschleife. Aber ich finde den Fehler nicht.
Die Schleife tritt nur auf wenn ich vom Stick boote, wenn ich diese unter W7 in der CMD ausführe gehts einwandfrei.
Hier mal meine Bat:

@echo OFF
:start
ECHO Please choose the programm
ECHO.
ECHO Tools
ECHO.
ECHO 1. MEMTEST+86
ECHO 2. DELL DIAG
ECHO 3. DELL ASSET TOOL
ECHO 4. DMICFG
ECHO 5. KILLDISK
ECHO 6. EDITOR
ECHO 7. FDISK
ECHO -----------------------------
Echo Bios Updates
ECHO.
ECHO a. Dell E5500 A15
ECHO b. Dell E6500 A19
ECHO c. Dell Optiplex 760 A06
ECHO d. Dell Optiplex 740 2.2.4
ECHO e. Dell Optiplex 380 A01
ECHO f. EXIT to CMD
ECHO.
set choice=
set /p choice=Press 1,2,3,4,5,6,a,b,c,d,e or x.
if not "%choice%" == "" set choice=%choice:~0,1%
if "%choice%" == "1" goto memtest
if "%choice%" == "2" goto dell
if "%choice%" == "3" goto asset
if "%choice%" == "4" goto dmi
if "%choice%" == "5" goto kill
if "%choice%" == "6" goto edit
if "%choice%" == "7" goto fdsk
if "%choice%" == "a" goto E5500
if "%choice%" == "b" goto E6500
if "%choice%" == "c" goto 760
if "%choice%" == "d" goto 740
if "%choice%" == "e" goto 380

if "%choice%" == "x" goto exit
ECHO "%choice%" is not valid please try again
ECHO.
goto start

:memtest
ECHO Loading MEMTEST+86....
memtest.exe
goto end

:dell
ECHO Loading DELL DIAG....
dell.bat
goto end

:asset
ECHO Loading DELL ASSET....
ASSET.COM
goto end

:dmi
ECHO Loading DMICFG....
DMICFG.EXE
goto end

:kill
ECHO Loading KILLDISK....
killdisk.exe
goto end

:edit
ECHO Loading EDITOR....
edit.com
goto end

:fdsk
ECHO Loading FDISK....
fdisk.exe
goto end

:E5500
ECHO Loading Bios Update for Dell E5500....
BIOS\E5500A15.EXE
goto end

:E6500
ECHO LoadingBios Update for Dell E6500....
BIOS\E6500A19.EXE
goto end

:760
ECHO Loading Bios Update for Dell Optiplex 760....
BIOS\O760-A06.EXE
goto end

:740
ECHO Loading Bios Update for Dell Optiplex 740....
BIOS\O740-224.EXE
goto end

:380
ECHO Loading Bios Update for Dell Optiplex 380....
BIOS\O380-A01.EXE
goto end

:exit
ECHO Exit
goto end
:end


Ich hatte die Vermutung die Schleife liegt am ":start" und "goto start", aber es soll ja nur wieder zum Start gegangen werden wenn die Auswahl nicht paßt.
Sollte meine bat generell Unfug sein bin ich auch für Verbesserungsvorschläge offen.

Danke....

Content-ID: 140990

Url: https://administrator.de/contentid/140990

Ausgedruckt am: 14.11.2024 um 03:11 Uhr

Biber
Biber 19.04.2010 um 22:03:27 Uhr
Goto Top
Moin buddha,

Die Schleife tritt nur auf wenn ich vom Stick boote, wenn ich diese unter W7 in der CMD ausführe gehts einwandfrei
Genau das sind auch die ersten Fragen
  • führst du denn diese Autoexec.bat überhaupt unter der CMD.exe aus?
  • Mit welchem Betriebssystem bootest du denn /Wie hast du deinen bootbaren Stick erzeugt?
  • auf was zeigt die Umgebungsvariable %COMSPEC%, wie sieht der Wert von %PATH% aus?

Von der Batchdatei, wenn sie denn anläuft, wissen wir nur sicher, dass sie sich selbst kennt ... ob sie unter einer CMD.exe läuft und daher SET/P kennt wissen wir nicht.
Ob die ganzen externen Befehle wie MemTest.exe, Asset.com etc in dem Verzeichnis liegen, auis dem die Batch gestart wurde oder irgendwo im Suchpfad, das ist so nicht zu erkennen.

Grüße
Biber
77559
77559 19.04.2010 um 22:07:05 Uhr
Goto Top
Ohne jetzt weiter deinen Code verfolgt zu haben:

du kannst nicht erweiterte NT Befehle der CMD.exe in einer DOS Command.com Batch benutzen.
Set /P gibt es nicht,
Substring Funktionen wie in
set choice=%choice:~0,1%
ebenfalls nicht.
Das DOS-Choice funktioniert anders

Gruß
LotPings