2014-01-10 3 views
0

일괄 처리를하고 있습니다. 그 일괄 처리가 매우 강력하지는 않지만 그것은 첫 번째 게임입니다. 어쨌든 나는 if 문을 만들고 있는데 문 1을 통과하면 살 수 있지만 문 2를 통과하면 죽게됩니다. 불행히도 두 문 중 하나를 통과하면 프로그램이 다시 시작됩니다. 여기에 코드를 보여 드리겠습니다 :일괄 처리 문제 (if 문)

`@echo off 
color 02 
::stats 
set Badasspts=0 

:Beginning 
echo Hello what is your name? 
set /p name= 
echo Hello %name%! 
echo You have two doors to go through. Which one? Possible answers: 1 or 2 
set /p answer1= 
if answer1==1 goto youLive 
if answer1==2 goto youDie 
:youDie 
echo Behind this door is an alligator pit you accidentally fall in and die! 
goto Beginning 

:youLive 
echo Well... well... well... you live this time but now ummm... A wild monster appears. What do you do? Possible answers: hug, attack 
set /p hugAttck= 
if hugAttack==hug goto hug 
if hugAttack==attack goto attack1 

:hug 
echo You hug that cute furry monster soooo hard that he dies. Plus 1 BADASS points!!!! 
pause` 

메모 : 나는 Notepad ++에서 프로그래밍 중입니다. 아직 끝나지 않았습니다.

+0

이 스크립트를 어떻게 실행합니까? * .bat 파일에 저장하고 명령 줄에서 실행 하시겠습니까? – zehelvion

답변

0

현재 조건은 true로 평가되지 않으며 프로그램이 전혀 점프하지 않습니다. 프로그램이 자연스럽게 다음 줄로 진행하기 때문에 'youDie'비트가 실행됩니다. 사용자 입력에 관계없이 두 조건이 모두 false로 평가되는 이유는 if 문이 변수 'answer1'대신 문자열 'answer1'을 숫자와 비교한다는 것입니다. 올바른 구문은 if %answer1%==1 goto youLive입니다.

0

%answer1%을 수행하지 않았으므로 작동하지 않습니다.

단어가 answer1이고 변수가 아닙니다.

마찬가지로 %name%을 작성하는 것과 동일하게 대답해야합니다.

디버깅 할 때 (스크립트에서 문제를 찾는 경우) 에코를 끄지 마십시오.