"goto" kann syntaktisch an dieser Stelle nicht verarbeitet werden
Morgen, ich schreibe gerade an einem Zufallsgenerator für die Klasse, also an einem, der auswählt, wer dran kommt. Ich schreibe es in batch. Es funktioniert auch alles, allerdings habe ich gerade die Funktion hinzugefügt, dass man auswählen kann, wer am derzeitigen Tag nicht da ist. Wenn man dann den Namen auswählt (also jeder hat seine eigene Taste), dann soll er zu dem Zufallsgenerator (alles im selben programm), bei dem derjenige nicht dabei ist. Zb. if %klick%==A goto Frank . Leider nennt er mir, wenn ich das Programm ausführe, den oben genannten "Fehler".
weiß jemand was da nicht stimmt? Wäre wirklich nett...
weiß jemand was da nicht stimmt? Wäre wirklich nett...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 273695
Url: https://administrator.de/forum/goto-kann-syntaktisch-an-dieser-stelle-nicht-verarbeitet-werden-273695.html
Ausgedruckt am: 21.04.2025 um 15:04 Uhr
14 Kommentare
Neuester Kommentar
Moin Y4nn1ck,
bitte poste mal ein paar Zeilen mehr deines Skriptes (vorzugsweise in Codetags).
Das können mehrere Fehler in der Zeile
- %klick% ist undefined
- %klick% und A stehen beide nicht in Anführungszeichen; somit kann aus diversen Gründen/in diversen Situationen Syntaxfehler "geworfen werden".
- Der Schalter /i beim IF fehlt - Klein/Grossschreibung wird NICHT ignoriert
- Sprungmarke "Frank" existiert nicht
...
Grüße
Biber
bitte poste mal ein paar Zeilen mehr deines Skriptes (vorzugsweise in Codetags).
Das können mehrere Fehler in der Zeile
if %klick%==A goto Frank
untergebracht worden sein, zB- %klick% ist undefined
- %klick% und A stehen beide nicht in Anführungszeichen; somit kann aus diversen Gründen/in diversen Situationen Syntaxfehler "geworfen werden".
- Der Schalter /i beim IF fehlt - Klein/Grossschreibung wird NICHT ignoriert
- Sprungmarke "Frank" existiert nicht
...
Grüße
Biber
So einfach, wie Du einen Beitrag erstellst. Copy und paste des Quelltextes.
Und danach bitte unbedingt Codetags benutzen, damit man das ganze auch vernünftig lesen kann.
Und danach bitte unbedingt Codetags benutzen, damit man das ganze auch vernünftig lesen kann.
Also, so geht es:
Was ich verändert habe:
- Zuweisung der Eingabe zur Variable (Zeile 15)
- Anführungszeichen in der If-Abfrage gesetzt (am Beispiel von Zeile 21)
echo off
title Zufallsgenerator 9d Version 2.0.1
color 3F
echo Lasst uns das Rad drehen, doch vorher erstmal den Kranken auswaehlen
echo.
echo.
echo A fuer Frank B fuer Sophie C fuer Mareike D fuer Tillmann
echo E fuer Markus F fuer Luise G fuer Sophia H fuer Dora
echo I fuer Ferdi J fuer Anton K fuer Mathilda L fuer Julia
echo M fuer Anna N fuer Harry O fuer Jakob P fuer Jan
echo Q fuer Julius R fuer Yannick S fuer Mizgin T fuer Emily
echo U fuer Niemand
echo.
set /p klick = Unser Pechvogel für heute ist
:zuhause
if /i "%klick%"=="A" goto afrank
...
:afrank
pause>Nul
Was ich verändert habe:
- Zuweisung der Eingabe zur Variable (Zeile 15)
- Anführungszeichen in der If-Abfrage gesetzt (am Beispiel von Zeile 21)
Zitat von @Biber:
Eigentlich sollte doch der Versionszähler wenigstens auf
Eigentlich sollte doch der Versionszähler wenigstens auf
Zufallsgenerator 9d Version 2.0.1a
.Übrigens, so viel wie wir hier in letzter Zeit mit Batch zu tun haben (mehr als mit VBS oder so), wäre es wirklich mal praktisch, eine Syntaxhervorhebung für Batch in den Codetags zu haben ...
Zitat von @Y4nn1ck:
Wenn man dann den Namen auswählt (also jeder hat seine eigene Taste), dann soll er zu dem Zufallsgenerator (alles im selben programm), bei dem derjenige nicht dabei ist.
Wenn man dann den Namen auswählt (also jeder hat seine eigene Taste), dann soll er zu dem Zufallsgenerator (alles im selben programm), bei dem derjenige nicht dabei ist.
Wo ich mir das gerade noch mal durchlese finde ich den Weg etwas schräg, um das Ziel zu erreichen. Du arbeitest dann mit zwanzig Zufallsgenerator-Codes, bei denen das meiste redundant ist. Wäre es nicht eleganter das Programm so aufzuziehen:
- Eingabe (oder Auswahl) des eigenen Namens
- Zufallsgenerator starten und Ergebnis in Variable schreiben
- Prüfen, ob das Ergebnis des Zufallsgenerator zufällig der eigene Name ist, wenn ja, zurück zu Schritt 2
- Ausgabe des Ergebnisses
Sorry, dafür reichen dann meine Batch-Kenntnisse nicht aus. Ich programmiere normalerweise in VB6, dort würde ich das mit einer Array-Variable lösen, die dann ebenfalls mit dem Ergebnis des Zufallsgenerators verglichen würde. Ob sowas in VB geht, weiss ich nicht. Da kann Biber Dir sicher weiterhelfen