gelöst 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!!!
10 Antworten
- LÖSUNG 99045 schreibt am 19.09.2011 um 16:41:31 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:00:38 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 17:09:57 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:15:47 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 17:24:07 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:29:22 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 17:35:56 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:47:23 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 18:11:54 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 21:55:42 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 18:11:54 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:47:23 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 17:35:56 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:29:22 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 17:24:07 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:15:47 Uhr
- LÖSUNG 99045 schreibt am 19.09.2011 um 17:09:57 Uhr
- LÖSUNG akkaren schreibt am 19.09.2011 um 17:00:38 Uhr
LÖSUNG 19.09.2011 um 16:41 Uhr
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ß
LÖSUNG 19.09.2011 um 17:00 Uhr
Entweder versteh ich dich falsch, oder du mich..
Zur verdeutlichung meines Problems:
Es soll keine Auswahl angezeigt werden. Wenn ich a drücke soll der Befehl "echo huhu" aufgeführt werden, bei b "echo hallo"
Wenn ich jetzt aber im CMD a bzw b eingebe passiert nichts.. dass ist das Problem..
Habe gerade festgestellt das bei "choice /c:ab /m test" auch nur das schwarze CMD-Fenster angezeit wird?
Kann es sein, dass der choice-Befehl bei mir gar nicht funktioniert? Und wenn, an was könnte das liegen? win7 erlaubt ja choice, eigentlich....
grüß
Zur verdeutlichung meines Problems:
Es soll keine Auswahl angezeigt werden. Wenn ich a drücke soll der Befehl "echo huhu" aufgeführt werden, bei b "echo hallo"
Wenn ich jetzt aber im CMD a bzw b eingebe passiert nichts.. dass ist das Problem..
Habe gerade festgestellt das bei "choice /c:ab /m test" auch nur das schwarze CMD-Fenster angezeit wird?
Kann es sein, dass der choice-Befehl bei mir gar nicht funktioniert? Und wenn, an was könnte das liegen? win7 erlaubt ja choice, eigentlich....
grüß
LÖSUNG 19.09.2011 um 17:09 Uhr
Hier funktioniert Part 1 wie gewünscht, nach Eingabe erfolgt die Anzeige huhu bzw. hallo.
LÖSUNG 19.09.2011 um 17:15 Uhr
Bei mir funktioniert es leider nicht.. An was könnte das liegen?
LÖSUNG 19.09.2011 um 17:24 Uhr
Wie heißt denn deine Batch-Datei?
LÖSUNG 19.09.2011 um 17:29 Uhr
die datei heißt "test.bat"
LÖSUNG 19.09.2011 um 17:35 Uhr
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.
LÖSUNG 19.09.2011 um 17:47 Uhr
So jetzt gehts: Zwar nicht mit .cmd und ich hatte auch immer die richtige Datei.Aber da du gerade sagtest 'mit eingeschränkten User' hab ichs mal mit 'als administrator ausführen' gestartet, und siehe da es funktioniert! Ich verstehs nicht ganz, da ich auch so Admin bin...!? Wie kann das sein?
LÖSUNG 19.09.2011 um 18:11 Uhr
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 Formatierungshilfe 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
LÖSUNG 19.09.2011 um 21:55 Uhr
Endlich glappt alles!
Ich danke dir!
Ich danke dir!
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte