Batch Spiel speichern

Es kann nur 1Mikne speichern aber z.b. keine Spielsüende Überschreiben. Könnt ihr mir helfen. Hilft es was wenn ich sage, es ist ein Strategiespiel?

Speichern

cls
echo Moechtest du…
echo 1) …Einen neuen Spielstand anlegen.
echo 2) …Einen Spielstand ueberschreiben
set /p Speichern=
if %Speichern%==1 goto Speichern2
if %Speichern%==2 goto Ueberschreiben
goto Speichern

Speichern2

set Zahl=1
if exist 1Mikne.bat (
set Zahl 2
if exist 2Mikne.bat (
set Zahl 3
if exist 3Mikne.bat (
goto Gibtscho3
)
)
)

Speichern3

echo set A1=%A1%> „%Zahl%Mikne.bat“
echo set A2=%A2%>> „%Zahl%Mikne.bat“
echo set A3=%A3%>> „%Zahl%Mikne.bat“
echo set A4=%A4%>> „%Zahl%Mikne.bat“
echo set B1=%B1%>> „%Zahl%Mikne.bat“
echo set B2=%B2%>> „%Zahl%Mikne.bat“
echo set B3=%B3%>> „%Zahl%Mikne.bat“
echo set B4=%B4%>> „%Zahl%Mikne.bat“
echo set C1=%C1%>> „%Zahl%Mikne.bat“
echo set C2=%C2%>> „%Zahl%Mikne.bat“
echo set C3=%C3%>> „%Zahl%Mikne.bat“
echo set C4=%C4%>> „%Zahl%Mikne.bat“
echo set D1=%D1%>> „%Zahl%Mikne.bat“
echo set D2=%D2%>> „%Zahl%Mikne.bat“
echo set D3=%D3%>> „%Zahl%Mikne.bat“
echo set D4=%D4%>> „%Zahl%Mikne.bat“
echo set Bankja=%Bankja%>> „%Zahl%Mikne.bat“
echo set Schulden=%Schulden%>> „%Zahl%Mikne.bat“
echo set Be=%Be%>> „%Zahl%Mikne.bat“
echo set Truppe=%Truppe%>> „%Zahl%Mikne.bat“
echo set Geld=%Geld%>> „%Zahl%Mikne.bat“
goto Spiel2

Gibtscho3

cls
color 0c
echo Es giebt schon 3 Spielstaende.
pause>nul
cls
goto Fake

ksp

cls
color 0c
echo Du hast noch keinen Spielstand zum Ueberschreiben.
pause>nul
cls
goto Fake

Ueberschreiben

cls
echo Welchen Spielstand moechtest du Ueberschreiben?
if NOT exist 1Mikne.bat goto ksp
if NOT exist 2Mikne.bat (
echo 1) 1Mikne
set /p Ueberschreiben=
if %Ueberschreiben%==1 (
set zahl= 1
goto Speichern3
)
goto Ueberschreiben
)
if NOT exist 3Mikne.bat (
echo 1) 1Mikne
echo 2) 2Mikne
set /p Ueberschreiben=
if %Ueberschreiben%==1 (
set zahl= 1
goto Speichern3
)
if %Ueberschreiben%==2 (
set zahl= 2
goto Speichern3
)
goto Ueberschreiben
)
if exist 3Mikne.bat (
echo 1) 1Mikne
echo 2) 2Mikne
echo 2) 3Mikne
set /p Ueberschreiben=
if %Ueberschreiben%==1 (
set zahl= 1
goto Speichern3
)
if %Ueberschreiben%==2 (
set zahl= 2
goto Speichern3
)
if %Ueberschreiben%==3 (
set zahl= 3
goto Speichern3
)
goto Ueberschreiben
)

a) Hallo,

b) verwende bitte beim schreiben das pre-tag (Über dem Beitragverfassbildschirm, Hilfe darunter)

c) füge die Teile des Originalcodes per copy-paste ein

set Zahl 2
set zahl= 3

oder sind die Tippfehler auch im originalcode?

d) Gruß

e) achim

P.S.: nein, Strategiespiel hilft mir nicht, ist aber nett wenn Du schreibst was Du machst :smile:

Danke.=) Aber ich kann immer noch keinen Speicherstand überschreiben.=(

Dann sind vermutlich noch immer Tippfehler drin…
owt

Hallo Ich,

Danke.=) Aber ich kann immer noch keinen Speicherstand
überschreiben.=(

warum machst du es Helfern unnötig schwer?
Meinste im Ernst, nach deinem ersten Codezeigen hat hier jmd. Vertrauen
in dich daß du das von Wilbert auch Korrekt umgesetzt hast?

Und wieso Tippfehler? Kopiere das doch aus einem Texteditor heraus
füge es hier ein, markiere es und „oben“ auf „pre“ klicken.
Dann weiß z.B. Wilbert EXAKT wie dein derzeitiger Code
aussieht.

Also versuch doch mal diese Antwortform:

*****************************************************************
Hi Wilbert,

ich kann da immer noch nicht abspeichern. Ggfs. (ich kann das nicht
einschätzen in dem Fall) es passiert dies das oder jenes wenn ich die
Batch laufen lass.
Nachfolgend mein geänderter aktueller Code.

Gruß
Ich

Hier dann der Code…
*****************************************************************

Gruß
Reinhard

Hallo Ichhabnproblem,
nur ganz grob überflogen. Hier in der letzten Zeile

:Ueberschreiben
cls
echo Welchen Spielstand moechtest du Ueberschreiben?
if NOT exist 1Mikne.bat goto ksp
if NOT exist 2Mikne.bat (
echo 1) 1Mikne
set /p Ueberschreiben=

löschst Du „Ueberschreiben“ gewissermassen. Das führt dazu, daß der nachfolgende Test

if %Ueberschreiben%==1

nach Ersetzen der Variablen so aussieht:

if ==1

Das ist syntaktisch falsch und führt zum Abbruch

Können noch mehr Fehler drin sein, aber weiter habe ich nicht gesucht.
Kleine Anfrage: Machst Du das extra für dich als Batch? Gibt ja inzwischen andere Sprachen, die übersichtlicher und kürzer als so ein Batch-File sind.

Viele Grüße
Marvin

Hallo Marvin,

mit

set /p Ueberschreiben=

löschst Du „Ueberschreiben“ gewissermassen. Das führt dazu,

„set /p xxx=“ ist m.E. korrekte und erfordert eine Eingabe des Benutzers.

Nur wenn man nichts eingibt passiert

if ==1

Das ist syntaktisch falsch und führt zum Abbruch

Daher schreibt man dann meist z.b

if a%Ueberschreiben%==a1 

mit a als beliebigem dummy prefix ohne sonst weitere funktion.

Da der Urposter aber

 nicht nutzen kann oder möchte und der Originaltext mindestens 6 Tippfehler (Leerzeichen hinter =) enthält, ist wie Reinhard zurecht schrieb eine konstruktive Hilfe sinnlos.

Gruß
achim

Sorry. Hier ist der Aktuelle Code. Aber ich verstehe das mit dem das
die Variable „Ueberschreiben“ verschwindet.

Ueberschreiben

cls
echo Welchen Spielstand moechtest du Ueberschreiben?
if NOT exist „1Mikne.bat“ goto ksp
if NOT exist „2Mikne.bat“ (
echo 1) 1Mikne
set /p Ueberschreiben=
if %Ueberschreiben%==1 (
set zahl=1
goto Speichern3
)
goto Ueberschreiben
)
if NOT exist „3Mikne.bat“ (
echo 1) 1Mikne
echo 2) 2Mikne
set /p Ueberschreiben=
if %Ueberschreiben%==1 (
set zahl=1
goto Speichern3
)
if %Ueberschreiben%==2 (
set zahl=2
goto Speichern3
)
goto Ueberschreiben
)
if exist „3Mikne.bat“ (
echo 1) 1Mikne
echo 2) 2Mikne
echo 2) 3Mikne
set /p Ueberschreiben=
if %Ueberschreiben%==1 (
set zahl=1
goto Speichern3
)
if %Ueberschreiben%==2 (
set zahl=2
goto Speichern3
)
if %Ueberschreiben%==3 (
set zahl=3
goto Speichern3
)
goto Ueberschreiben
)

Du hast Recht
Hallo Wilbert,

mit

set /p Ueberschreiben=

löschst Du „Ueberschreiben“ gewissermassen

„set /p xxx=“ ist m.E. korrekte und erfordert eine Eingabe des
Benutzers.
Nur wenn man nichts eingibt

Oh je, Du hast natürlich Recht. Ist wohl zu lange her, daß ich mich mit Batch rumärgern musste.

Daher schreibt man dann meist z.b

if a%Ueberschreiben%==a1

mit a als beliebigem dummy prefix ohne sonst weitere funktion.

Oder wenigstens eine Eingabeaufforderung

set /p Ueberschreiben="Ja/NEIN: "

damit dumme Benutzer wie ich überhaupt merken, daß sie was eingeben sollen.
Neben deiner Lösung kann/sollte man die Variable auch danach abprüfen:

if not defined Ueberschreiben (
 echo Hier muss man was eingeben!
)

So in etwa. Aber ich bin zu sehr bash-verwöhnt und finde, batch-Programmierung hat etwas masochistisches :wink:
Deshalb auch meine Nachfrage, warum Ichhabnproblem sich das antut.

Viele Grüße
Marvin

beendet Klammer bei echo 1) das if? besser 1:
owt

Ich habs endlich geschafft!!! Ich habe einfach das was in der Klammer stand, in eine einzelnes „:“ Überschrift. Sorry, das ich euch so genervt habe, mit einer so einfachen Aufgabe! Nochmal Sorry. Danke Trotzdem.