Wieso funktioniert dieser Script nicht habe Fehler gesucht aber nichts gefunden oder bin ich einfach nur zu blöd für Batch. es schließt sich sofort?

...komplette Frage anzeigen

1 Antwort

Hallo!

Ich habe es mal so grob zusammengeschoben und es sind da schon ein paar Dinge, die deinen Fehler auslösen können. Diese Version funktioniert jetzt auch soweit.

@echo off
color f
cls
REM pause

:Start
::ToDo: Von Links>Menu und Stop>Ja aus kann hier noch der Bildschirm bereinigt werden.
echo Du gehst in eine alte verlassene Höhle, dort findest du zwei Abtrennungen.
echo Es gibt 2 Pfade, einmal [Rechts] und einmal [Links].
echo Schreibe [Rechts] oder [Links]
REM set p/ =x
set /p x=

if %x%==Rechts goto Rechts
if %x%==Links goto Links

:Rechts
color f
cls
echo DU gehst in die rechte abzweigung und findest ein Seil mit einem Greifhaken das du über den Lava See schwingen kannst, um rüber zu gelangen.
echo Weiter machen oder abbrechen?
echo Schreibe um weiter zu spielen [Next]
echo Schreibe um abbzubrechen [Stop]
REM set /p =x
set /p x=

:: ToDo:Next ist noch nicht Implementiert!
if %x%==Next goto Next
if %x%==Stop goto Stop

:Stop
color f
cls
echo Bist du sicher ?
echo [Ja] oder [Nein]?
REM set /p =x
set /p x=

if %x%==Ja goto Menu if %x%==Nein goto Rechts

:Menu
color 4
cls
REM 'Echo-' ist nicht korrekt. Leerzeichen nicht vergessen.
Echo --------------------------
Echo -------------Menu---------
echo --[Start]---------[Exit]--
echo TIPP:Alles was in Klammer steht kann man Schreiben!
REM set /p =x
set /p x=

if %x%==Start goto Start
if %x%==Exit goto Exit

:Links
color f
cls
echo In Arbeit
REM echo [Menu] ? <----- :: '<' sollte vermieden werden, aber durch '^' können auch reservierte Zeichen benutzt werden.
echo [Menu] ? ^<-----
REM set /p =x
set /p x=

if %x%==Menu goto Menu

:Exit
REM pause STOP :: STOP ist nicht notwendig, da es nach Pause ignoriert wird.
pause

- Das Erste Pause würde ich raus nehmen. Denn auf einen leeren Bildschim
  muss nicht unbedingt gewartet werden.
- REM zeigt deine Schreibweise und darunter habe ich meine Variante
  geschrieben.
- ': :'  Ist nur eine Zusatznotiz von mir.

Viel Erfolg beim Weiterbasteln. ;)

PS: Du kann auch 'Codebeispiel einfügen' benutzen. ;p




Antwort bewerten Vielen Dank für Deine Bewertung
Tindox 18.09.2016, 12:09

Danke, hast mir echt geholfen

0
MarkusGenervt 19.09.2016, 14:23
@Tindox

Noch drei kleine Tipps:

Wenn Du die erste Zeile in "@echo on" änderst, werden Dir alle Schritte und dazugehörigen Ausgaben detailliert angezeigt.

Wenn Du die Batch dann auch noch von der Befehlszeile aus startest und nicht aus dem Explorer, dann schließt sich die Console nicht gleich nach dem Beenden des Skripts. So kannst Du dann noch nachlesen, was die letzte Fehlerausgabe war.

Wenn die detaillierte Bildschirm-Ausgabe sehr lang wird, kannst Du am Ende nicht mehr lesen, was am Anfang stand.
Es gibt da einen sog. Zeilen-Puffer. Den kannst Du über den Kontext-Menü-Punkt "Eigenschaften" erhöhen.
Hier kannst Du auch die sonstige Metrik des Fensters dauerhaft einstellen.

0

Was möchtest Du wissen?