"ad_r==a" kann syntaktisch an dieser Stelle nicht verarbeitet werden?
Hallo ich bin zwar noch Anfänger in Batch aber ich habe schon sehr viel geschrieben
Ich wollte ein neues Projekt angefangen und habe auch schon etwas geschrieben:
@echo off
color 3
:shell
set /p input=ZERO@shell:$
if %input%==/give ad_r goto option1
if %input%==2 goto option2
if %input%==3 goto option3
echo ERROR 404
goto shell
:option1
tree
pause
:option2
dir
pause
:option3
ipconfig
pause
wo ich es dann ausgeführt habe kamm eine Fehlermeldung:"ad_r==a" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Kann mir bitte Jemand helfen?
2 Antworten
top secret BlackZero.shell.bat
🤣🤣🤣Nicht Dein ernst... martialische Namen für eine fehlerhafte Nichtigkeit...
Das ist Batch und da gibt's kein Geheim.
"Gänsefüßchen"....unter Windows haben Batchdateien die Endung .cmd! (.bat schltet den Kommandointerpreter in einen DosEmulationsModus ---betrifft Error Management---)
@echo off
color 3
:shell
set /p "input=ZERO@shell:$"
if "%input%"=="/give ad_r" goto option1
if "%input%"=="2" goto option2
if "%input%"=="3" goto option3
echo ERROR 404
goto shell
:option1
tree
pause
:option2
dir
pause
:option3
ipconfig
pause
woher soll Batch wissen wo ein String endet oder eine andere Anweisung beginnt, wenn der String Leerzeichen enthält? ...und was Denkst Du was passiert wenn der Nutzer gar die Zeichen <>|& eingibt? umgebende "Quotes" kennzeichenen eine Zeichenfolge als zusammengehörigen String
Am Rande, Batch ist ein "sterbendes Pferd" investier nicht mehr allzuviel Energie in das erlernen dieses Monstrums.
Weil es "a" nicht gibt.
Entweder Du machst daraus eine Variable, oder einen String, was Du hast, geht aber nicht.
Außerdem vergleicht man in Batch-Skripten nicht mit "==" sondern Schlüsselwörtern, wie z.B. "EQU" für "Equals", was dann "==" bedeutet.
Und ich rate dir, lieber mit Powershell zu arbeiten, das ist zwar auch nicht die Kröhnung der Übersichtlichkeit, aber es ist besser, als Batch-Skripte, die sind furchtbar.