所以我对编码比较新,我似乎无法在我的代码中找到语法错误。每次加载菜单,然后按1,它会关闭并闪烁一个快速错误,表示有一个syantax错误。如果你们能帮助我找出引起问题的原因。顺便说一句,这是一个基于文本的RPG。没法官:))
@echo off
TITLE VICTIMQUEST =-= RETRO EDITION
setlocal enabledelayedexpansion
:menu
color 0a
cls
echo.
echo VICTIMQUEST =-= RETRO EDITION
echo.
echo 1) Begin
echo 2) Exit
echo.
set /p c=C:\
if "%c%" == "1" goto new
if "%c%" == "2" exit
goto menu
:new
set health=100
set monsterhealth=30
set playerdmg=7
set monsterdmg=3
goto home
:home
cls
echo You sit in your nice, cozy cabin...
echo ----------------------
echo Nothing you need to worry about.
echo.
echo 1) FIGHT!
echo 2) Quit :|
echo.
set /p c=C:\
if "%c%" == "1" goto encounter1
if "%c%" == "2" goto menu
goto home
:encounter1
cls
echo You: %health%
echo.
echo 1) Attack
echo 2) Run away
echo.
set /p c=C:\
if "!c!" == "1' goto attack1
if "!c!' == "2" goto home
goto encounter1
请帮忙。谢谢!
答案 0 :(得分:3)
3变化:
REM @echo off
- 当您正在调试时,Echo应该打开,或者您是盲目的竖线字符|是一个特殊字符,必须使用^进行转义。
echo 2) Quit :^|
引号不正确。需要双引号。
if "!c!" == "1" goto attack1
答案 1 :(得分:1)
我应该警告你,计算机在标点符号时非常挑剔。
"!c!" == "1'
和"!c!' == "2"
之类的内容永远不会奏效。
|
字符具有特殊含义,因此除非您使用^
将其转义或将其与其他内容一起放在双引号中,否则无法使用它。
答案 2 :(得分:1)
添加
pause >nul
到批处理文件的末尾。这将使批处理文件在用户按下某个键之前不会关闭。