2014-10-26 8 views
0

Смотрите полный код здесь: http://pastebin.com/nu7u5XTCПАРТИЯ - Синтаксис команды имеет Некорректное

Я использую команду «выбор» для чтения ключа пользователя, так что программа знает, что делать.

@ECHO OFF 
setlocal EnableExtensions EnableDelayedExpansion 
goto initialise 

:initialise 
cls 
set /a x=6 
set /a y=10 
set /a oldx=%x% 
set /a oldy=%y% 
REM Place all of the grass blocks... 
rem PaintScreen 2 

:choicelistener 

set /a oldx=%x% 
set /a oldy=%y% 

choice /c wasdWASDpqezxm /CS >NUL 

if %ERRORLEVEL%==1 goto moveNorth 

if %ERRORLEVEL%==2 (
REM Go west. 
if %facing.x%.%facing.y%.occupied==true (
REM There is a block there. 
goto choicelistener 
) ELSE (
REM There was no block there. 
set /a x=%x%-1 
set prevmove=a 
rem ChangeColor 2 0 
goto checker 
) 

if %ERRORLEVEL% 3 (
REM Go south. 
if %facing.x%.%facing.y%.occupied==true (
REM There is a block there. 
goto choicelistener 
) ELSE (
REM There was no block there. 
set /a y=%y%+1 
set prevmove=s 
rem ChangeColor 2 0 
goto checker 
) 

Это часть кода, который ломается. Я получаю ошибку «Синтаксис команды неверен».

Я исследовал это в течение двух часов, у других людей есть эта проблема, но ни одно из их решений не помогло мне. Какие-либо предложения? Благодарю.

+0

Введите 'choice /?' В командной строке и нажмите Enter. –

+0

Код, который вы опубликовали, не вызывает ошибок. Вы слишком упростили его. Кроме того, если вы действительно поставили код для проверки ввода пользователя в самом низу, он никогда не будет работать, так как '% errorlevel%' основан на последнем запуске команды, в этом случае 'set/a oldy =% y% ', который всегда будет устанавливать'% errorlevel% 'в 0. – SomethingDark

+0

Команда, которую вы используете **, не соответствует **, что показывает помощь. Прочтите еще раз. –

ответ

1

Не забудьте закрыть скобки ..

... 
goto checker 
) 
) 

На ваших двух проверок.

+0

У меня есть ярлык moveNorth дальше по сценарию. Я исключил его, чтобы код не был слишком длинным. – mgthomas99

+0

Хорошо, но работает ли размещение операторов? – Rafael

+0

Нет, я пробовал это раньше, и я просто попробовал еще раз, это не сработает. – mgthomas99

Смежные вопросы