2016-03-27 36 views
1

今はバッチでゲームをコーディングしていますが、この問題が発生したときには遠くに行っていません。私は、ユーザーの答えの変数を設定しようとしているIFステートメントのためにその答えを使用していますが、何らかの理由でそれは常に:Quitブロックに行きます。どのようにこれを修正するための任意のアイデア?IF文がバッチで機能しない?

Echo . Are you ready? 
Echo Your options are: 
call :colorEcho C "=================" 
Echo. 
Echo 1. Yes 
Echo 2. No 
call :colorEcho C "=================" 
Echo. 
Echo Please enter the number corresponding to your answer. 
set /p Answer1 = "Enter your choice: " 
if "%Answer1%" == "1" goto Game 
if "%Answer1%" == "2" goto Quit 

:Quit 
Echo You have chosen to quit. 
pause 
exit 

:Game 
::Game goes here. 
Echo Test 
pause 

pause 
exit 

:colorEcho 
echo off 
<nul set /p ".=%DEL%" > "%~2" 
findstr /v /a:%1 /R "^$" "%~2" nul 
del "%~2" > nul 2>&1i 

colorEchoは文字列に異なる色を設定するだけです。

これは私がゲームを実行したときに何が起こるかです:選択した

オプション1:選択した

Option 1 chosen

オプション2:事前に

Option 2 chosen

ありがとう! %Answer1%が定義されていないためだ

スペード

+2

私は[choice](http://ss64.com/nt/choice.html)を見てみることをお勧めします。これは具体的にはこれらのもののために作られたものです。 –

答えて

3

set /p Answer1 = "Enter your choice: " 

(スペースに注意!)%Answer1 %という名前の変数を設定します

=周りのスペースを削除します。

+0

ああ、私の神は本当にありがとう!私は前にそれを考えていたはずですが、常に新鮮な目で自分のコードを見るのに役立ちますよね?私から+1! –

関連する問題