akkaren
Goto Top

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!!!

Content-Key: 173347

Url: https://administrator.de/contentid/173347

Printed on: April 18, 2024 at 10:04 o'clock

Mitglied: 99045
99045 Sep 19, 2011 at 14:41:31 (UTC)
Goto Top
Hallo,

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 Befehl
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ß
Member: akkaren
akkaren Sep 19, 2011 at 15:00:38 (UTC)
Goto Top
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üß
Mitglied: 99045
99045 Sep 19, 2011 at 15:09:57 (UTC)
Goto Top
Hier funktioniert Part 1 wie gewünscht, nach Eingabe erfolgt die Anzeige huhu bzw. hallo.
Member: akkaren
akkaren Sep 19, 2011 at 15:15:47 (UTC)
Goto Top
Bei mir funktioniert es leider nicht.. An was könnte das liegen?
Mitglied: 99045
99045 Sep 19, 2011 at 15:24:07 (UTC)
Goto Top
Wie heißt denn deine Batch-Datei?
Member: akkaren
akkaren Sep 19, 2011 at 15:29:22 (UTC)
Goto Top
die datei heißt "test.bat"
Mitglied: 99045
99045 Sep 19, 2011 at 15:35:56 (UTC)
Goto Top
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
TITLE CHOICETEST
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.
Member: akkaren
akkaren Sep 19, 2011 at 15:47:23 (UTC)
Goto Top
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?
Mitglied: 99045
99045 Sep 19, 2011 at 16:11:54 (UTC)
Goto Top
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
if %asw%="1" goto reihe1

statt

if "%asw%"=="1" goto reihe1

Und bitte die beim Posten von Code benutzen,
Member: akkaren
akkaren Sep 19, 2011 at 19:55:42 (UTC)
Goto Top
Endlich glappt alles!
Ich danke dir!face-smile