Batch choice und set Problem
Hallo zusammen!
Ich benutze windows 7 ultimate.
Mein erstes Problem ist folgendes:
Beim choice /c: Befehl lässt sich keine Auswahl treffen. Da tut sich rein gar nichts??
Beispiel:
@echo off
:start
choice /c:ab /n > nul
if errorlevel 2 goto hallo
if errorlevel 1 goto huhu
:hallo
echo hallo
pause
goto start
:huhu
echo huhu
pause
goto start
Weiß jemand warum das so ist? Ist der Befehl falsch?
das 2te Problem:
Ich versuche gerade spaßeshalber ein kleines Spiel zu programieren, bin aber leider noch nicht weit gekommen. Zum einen würde ich gerne über der choice-Befehl arbeiten. Da dieser nicht funktioniert habe ich es mit dem 'set' befehl versucht, aber sobald ich eine eingabe mache und diese mit [enter] bestätige schließt sich das CMD-Fenster. Kann mir jemand weiterhelfen?
Hier der Code:
@echo off
:begin
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo 4 Gewinnt!
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
pause
set p=1
set t11=
set t21=
set t31=
set t41=
set t51=
set t61=
set t71=
set t12=
set t22=
set t32=
set t42=
set t52=
set t62=
set t72=
set t13=
set t23=
set t33=
set t43=
set t53=
set t63=
set t73=
set t14=
set t24=
set t34=
set t44=
set t54=
set t64=
set t74=
set t15=
set t25=
set t35=
set t45=
set t55=
set t65=
set t75=
set t16=
set t26=
set t36=
set t46=
set t56=
set t66=
set t76=
:update
cls
echo.
echo.
echo --Player %p% ist am Zug--
echo.
echo.
echo.
echo 1 2 3 4 5 6 7
echo.
echo : %t11% : %t21% : %t31% : %t41% : %t51% : %t61% : %t71% :
echo :...:...:...:...:...:...:...:
echo : %t12% : %t22% : %t32% : %t42% : %t52% : %t62% : %t72% :
echo :...:...:...:...:...:...:...:
echo : %t13% : %t23% : %t33% : %t43% : %t53% : %t63% : %t73% :
echo :...:...:...:...:...:...:...:
echo : %t14% : %t24% : %t34% : %t44% : %t54% : %t64% : %t74% :
echo :...:...:...:...:...:...:...:
echo : %t15% : %t25% : %t35% : %t45% : %t55% : %t65% : %t75% :
echo :...:...:...:...:...:...:...:
echo : %t16% : %t26% : %t36% : %t46% : %t56% : %t66% : %t76% :
echo :...:...:...:...:...:...:...:
echo.
echo.
echo.
echo.
set asw=0
set /p asw="In welche Reihe möchten sie Ihren Stein ablegen? "
if %asw%="1" goto reihe1
goto update
:reihe1
if "%p%"=="1" set t16=x
if "%p%"=="2" set t16=o
goto update
Es wäre toll wenn mir jemand weiterhelfen könnte.
Danke schonmal im Voraus!!!
Ich benutze windows 7 ultimate.
Mein erstes Problem ist folgendes:
Beim choice /c: Befehl lässt sich keine Auswahl treffen. Da tut sich rein gar nichts??
Beispiel:
@echo off
:start
choice /c:ab /n > nul
if errorlevel 2 goto hallo
if errorlevel 1 goto huhu
:hallo
echo hallo
pause
goto start
:huhu
echo huhu
pause
goto start
Weiß jemand warum das so ist? Ist der Befehl falsch?
das 2te Problem:
Ich versuche gerade spaßeshalber ein kleines Spiel zu programieren, bin aber leider noch nicht weit gekommen. Zum einen würde ich gerne über der choice-Befehl arbeiten. Da dieser nicht funktioniert habe ich es mit dem 'set' befehl versucht, aber sobald ich eine eingabe mache und diese mit [enter] bestätige schließt sich das CMD-Fenster. Kann mir jemand weiterhelfen?
Hier der Code:
@echo off
:begin
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo 4 Gewinnt!
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
pause
set p=1
set t11=
set t21=
set t31=
set t41=
set t51=
set t61=
set t71=
set t12=
set t22=
set t32=
set t42=
set t52=
set t62=
set t72=
set t13=
set t23=
set t33=
set t43=
set t53=
set t63=
set t73=
set t14=
set t24=
set t34=
set t44=
set t54=
set t64=
set t74=
set t15=
set t25=
set t35=
set t45=
set t55=
set t65=
set t75=
set t16=
set t26=
set t36=
set t46=
set t56=
set t66=
set t76=
:update
cls
echo.
echo.
echo --Player %p% ist am Zug--
echo.
echo.
echo.
echo 1 2 3 4 5 6 7
echo.
echo : %t11% : %t21% : %t31% : %t41% : %t51% : %t61% : %t71% :
echo :...:...:...:...:...:...:...:
echo : %t12% : %t22% : %t32% : %t42% : %t52% : %t62% : %t72% :
echo :...:...:...:...:...:...:...:
echo : %t13% : %t23% : %t33% : %t43% : %t53% : %t63% : %t73% :
echo :...:...:...:...:...:...:...:
echo : %t14% : %t24% : %t34% : %t44% : %t54% : %t64% : %t74% :
echo :...:...:...:...:...:...:...:
echo : %t15% : %t25% : %t35% : %t45% : %t55% : %t65% : %t75% :
echo :...:...:...:...:...:...:...:
echo : %t16% : %t26% : %t36% : %t46% : %t56% : %t66% : %t76% :
echo :...:...:...:...:...:...:...:
echo.
echo.
echo.
echo.
set asw=0
set /p asw="In welche Reihe möchten sie Ihren Stein ablegen? "
if %asw%="1" goto reihe1
goto update
:reihe1
if "%p%"=="1" set t16=x
if "%p%"=="2" set t16=o
goto update
Es wäre toll wenn mir jemand weiterhelfen könnte.
Danke schonmal im Voraus!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173347
Url: https://administrator.de/forum/batch-choice-und-set-problem-173347.html
Ausgedruckt am: 10.01.2025 um 11:01 Uhr
10 Kommentare
Neuester Kommentar
Hallo,
Choice /? ansehen, da stehen auch Beispiele drin, die funktionieren.
Gruß
Zitat von @akkaren:
Mein erstes Problem ist folgendes:
Beim choice /c: Befehl lässt sich keine Auswahl treffen. Da tut sich rein gar nichts??
Doch, im Prinzip funktioniert der BefehlMein erstes Problem ist folgendes:
Beim choice /c: Befehl lässt sich keine Auswahl treffen. Da tut sich rein gar nichts??
Weiß jemand warum das so ist?
Ja. Du gibst ja auch keine Meldung aus, wie soll denn da was angezeigt werden?.Ist der Befehl falsch?
Ja, besonders, wenn du die (mögliche) Ausgabe mit "> nul" auch noch ins Nirwana schickst.Choice /? ansehen, da stehen auch Beispiele drin, die funktionieren.
das 2te Problem:
Ist nichts für mich.Gruß
Hier funktioniert Part 1 wie gewünscht, nach Eingabe erfolgt die Anzeige huhu bzw. hallo.
Wie heißt denn deine Batch-Datei?
Keine weitere Idee außer benenne sie mal um in irgendwas.cmd und probiere es damit.
Du bist sicher, dass du auch die richtige Batch-Datei aufgerufen hast? Schreib mal als
1. Zeile
der müsste dann auch im Fenster der Eingabeaufforderung in der Titelleiste erscheinen.
Die UAC spielt keine Rolle, ich hab's auch mit einem eingeschränkten User ausprobiert, alles läuift.
Du bist sicher, dass du auch die richtige Batch-Datei aufgerufen hast? Schreib mal als
1. Zeile
TITLE CHOICETEST
Die UAC spielt keine Rolle, ich hab's auch mit einem eingeschränkten User ausprobiert, alles läuift.
Möglicherweise hast du dir irgendwas verstellt.
Hier habe ich mit UAC="Immer nachfragen", mit Standarduser und unveränderter Verknüpfung "Eingabeaufforderung" (also nicht "Als Administrator ausführen") mit einem Doppelklick auf die Batch getestet, ohne dass eine Nachfrage kam Da kann ich dir leider nicht weiterhelfen.
Was dein set-Problem angeht, so fang in Zeile 1 mit echo ON an, dann siehst du evtl, wo der Fehler liegt, z. B. beim Goto ohne Doppelpunkt vor der Sprungmarke (bei :eof zwingend) oder beim fehlerhaften Vergleich
Und bitte die beim Posten von Code benutzen,
Hier habe ich mit UAC="Immer nachfragen", mit Standarduser und unveränderter Verknüpfung "Eingabeaufforderung" (also nicht "Als Administrator ausführen") mit einem Doppelklick auf die Batch getestet, ohne dass eine Nachfrage kam Da kann ich dir leider nicht weiterhelfen.
Was dein set-Problem angeht, so fang in Zeile 1 mit echo ON an, dann siehst du evtl, wo der Fehler liegt, z. B. beim Goto ohne Doppelpunkt vor der Sprungmarke (bei :eof zwingend) oder beim fehlerhaften Vergleich
if %asw%="1" goto reihe1
statt
if "%asw%"=="1" goto reihe1
Und bitte die beim Posten von Code benutzen,