2013-10-10 2 views
2

그래서 기본 컴퓨터 프로그램을 작성하려고합니다. 일부 구문에 약간의 문제가 있습니다. 코드는 다음과 같습니다.배치 : Simply Syntax Error :이 시점에서 Goto이 예기치 않게 발생했습니다.

@echo off 
cls 
color 71 
:start 
echo  ----------------------------------- 
echo  Welcome to Tandy's Calculator! v0.1 
echo  ----------------------------------- 
echo   Enter your first number below 
echo Type "help" to see the list of available commands 
echo  ----------------------------------- 
set /p "_input1=Please Enter The First Number or Command:" 
cls 
goto subroutine 

:subroutine 
:: the below line gives me the "goto was unexpected at this time" error 
if /i "%_input1%"=="help" goto help1 
if /i "%_input1%"=="back" goto _input1 
if /i "%_input1%"=="clear" goto clearVar (
goto checkVar 
) 

내가 파일을 실행 할 때마다 나는 하고 명령 창 닫힌다 "고토는이 시간에 예상치 못한"오류를 수신하고 있습니다.

pause 명령을 사용하면 프로그램의 오류 메시지가있는 부분을 정확히 찾아 낼 수있었습니다. 이것은 프로그램에서 논평되었습니다.

아무도 도와 줄 수 있습니까? 구문이 잘못되었습니다.

답변

2

이 시도 :

if /i "%_input1%"=="clear" goto clearVar 
goto checkVar 

이 유효하지 않은 구문입니다.

if /i "%_input1%"=="clear" goto clearVar (
goto checkVar 
) 
+0

이 프로그램은 고토 명령 자체가이 시간에 예상치 못한 내게 말하고있다. 그래서 내가 if 명령 구문을 엉망으로 만들고 있다고 생각하게한다. – E404

+0

고토 clearVar (일반 변수) 내 프로그램 의이 부분에 저를 취합니다 clearVar 세트 "_input1 =" 가 : – E404

+0

위의 내 편집을 참조하십시오. 또한': clearVar'가 한 행에 있는지 확인하십시오. – foxidrive

1

변수를 설정하면 문제가 해결 된 것 같습니다. 문이

:subroutine2 
if /i "%action%"=="%help%" goto help2 
if /i "%action%"=="%back%" goto back2 
if /i "%action%"=="%clear%" goto clearVar 
if /i "%action%"=="%add%" goto _input2 
if /i "%action%"=="%subtract%" goto _input2 
if /i "%action%"=="%multiply%" goto _input2 
if /i "%action%"=="%divide%" (goto _input2) else (goto functionerror) 

처럼 보이는 경우 은 단순히 그런 그래서

::command bank 
set help=help 
set back=back 
set clear=clear 

::methods 
set add=add 
set subtract=subtract 
set multiply=multiply 
set divide=divide 

같은 프로그램의 시작 부분에 변수를 초기화 내가 변경 한이 내가 가지고 있던 구문 오류를 제거했습니다. 문제는 "If"명령 구문에서 object2를 인식하지 못하는 것 같습니다. 사용자 옵션을 변수로 초기화 한 다음 사용자가 명령을 초기화하기 위해 입력하는 문자열과 동일한 문자열을 제공하면 트릭을 수행합니다.

누구나 전체 코드를 원한다면 프로그램을 더 잘 이해하고 알려주는 것이 무엇인지 알 수 있으므로 나중에 참조 할 수 있도록/pastebin 이메일을 보낼 수 있습니다.

1

도이 시도 :

if /i "%_input1%"=="clean" (
    goto cleanVar 
) ELSE (
    goto checkVar 
) 
관련 문제