"ad_r==a" kann syntaktisch an dieser Stelle nicht verarbeitet werden?

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.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

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.