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....
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....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 140990
Url: https://administrator.de/contentid/140990
Ausgedruckt am: 26.11.2024 um 14:11 Uhr
2 Kommentare
Neuester Kommentar
Moin buddha,
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
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
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
ebenfalls nicht.
Das DOS-Choice funktioniert anders
Gruß
LotPings
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%
Das DOS-Choice funktioniert anders
Gruß
LotPings