Wo ist der Fehler in diesem Batch Skript?
Hallo com, ich finde den Fehler im folgenden (Teil)-Skript nicht und bin am verzweifeln. CMD meldet: "(" kann sntaktisch an dieser Stelle nicht verarbeitet werden.
set /p ex_username="Personal username: "
if %ex_username% == root (
cls
set /p rootpw="> "
if %rootpw% == "jdk_L539v4dot1" (
timout /t 2 > NUL
cls
set /p userlist="> "
if %userlist% == "!user~'list,/a" (
cd users
For /F %%i in ('dir /B') do set userlist=%%~ni
echo %userlist%
)
)
)
set /p ex_username="Personal username: "
if %ex_username% == root (
cls
set /p rootpw="> "
if %rootpw% == "jdk_L539v4dot1" (
timout /t 2 > NUL
cls
set /p userlist="> "
if %userlist% == "!user~'list,/a" (
cd users
For /F %%i in ('dir /B') do set userlist=%%~ni
echo %userlist%
)
)
)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 329597
Url: https://administrator.de/contentid/329597
Ausgedruckt am: 23.11.2024 um 21:11 Uhr
11 Kommentare
Neuester Kommentar
Na dann setze dir mal Pausen, damit man den Punkt des Abbruchs leichter findet.
Was soll in Zeile 15 passieren?
Was soll in Zeile 15 passieren?
@echo off
Setlocal EnableDelayedExpansion
set /p ex_username="Personal username: "
if "%ex_username%" == "root" (
cls
set /p rootpw="> "
echo !rootpw!
if "!rootpw!" == "abc" (
echo pw okay
timout /t 2 > NUL
cls
set /p userlist="> "
echo !userlist!
if "!userlist!" == "!user~'list,/a" (
cd users
For /F %%i in ('dir /B') do set userlist=%%~ni
echo !userlist!
)
)
)
pause
Moin,
Habe das gerade einmal nachgestellt.
Das Problem scheint zu sein, dass MS-DOS nicht mit If-Schleifen in IF-Schleifen klarkommt.
Der springt ja erst gar nicht in die erste Schleife rein.
Das ist mir beim editieren mit Notepad++ und dem Highlithing aufgefallen.
Die erste geöffnete Klammer wurde mit der ersten geschlossenen Klammer "bedient"..
mach es einfach wie folgt:
Gruß
em-pie
Habe das gerade einmal nachgestellt.
Das Problem scheint zu sein, dass MS-DOS nicht mit If-Schleifen in IF-Schleifen klarkommt.
Der springt ja erst gar nicht in die erste Schleife rein.
Das ist mir beim editieren mit Notepad++ und dem Highlithing aufgefallen.
Die erste geöffnete Klammer wurde mit der ersten geschlossenen Klammer "bedient"..
mach es einfach wie folgt:
set /p ex_username="Personal username: "
IF "%ex_username%" == "root" (
cls
set /p rootpw="x "
) ELSE (
goto ENDE
)
if "%rootpw%" == "jdk_L539v4dot1" (
timout /t 2 > NUL
cls
set /p userlist="> "
) ELSE (
goto ENDE
)
if "%userlist%" == "!user~'list,/a" (
cd users
For /F %%i in ('dir /B') do set userlist=%%~ni
echo %userlist%
) ELSE (
goto ENDE
)
:ENDE
Pause
Gruß
em-pie
Und?
Funktioniert es bei dir?
vlt. Hilfreich: Batch Anfänger Fragen zu setlocal, enabledelayedexpansion, set, for
Funktioniert es bei dir?
vlt. Hilfreich: Batch Anfänger Fragen zu setlocal, enabledelayedexpansion, set, for