Batch file 批处理如果语句不';好像不行
我很困惑,感谢所有的帮助。。。 我正在做一个小游戏,下面是代码:Batch file 批处理如果语句不';好像不行,batch-file,Batch File,我很困惑,感谢所有的帮助。。。 我正在做一个小游戏,下面是代码: @echo off :menu echo Welcome To My Game!!! echo Play & echo.Exit :: add more menu items above set /p menInp= if /i %menInp%==play goto initFile if /i %menInp$==exit EXIT :initFile cls if NOT exist \MyAdventu
@echo off
:menu
echo Welcome To My Game!!!
echo Play & echo.Exit
:: add more menu items above
set /p menInp=
if /i %menInp%==play goto initFile
if /i %menInp$==exit EXIT
:initFile
cls
if NOT exist \MyAdventureGame\AdventureGameSave.txt\ GOTO newGame
if exist \MyAdventureGame\AdventureGameSave.txt\ GOTO Load
:newGame
echo. 2>AdventureGameSave.txt
set Gold = 50
set Xp = 0
set Level = 1
GOTO Save
:Save
echo %Gold% >>AdventureGameSave.txt
echo %Xp% >>AdventureGameSave.txt
echo %Level% >>AdventureGameSave.txt
GOTO Town
:Load
:: add Load functionallity here
GOTO Town
:Town
echo Welcome to town!!!
PAUSE
现在回答我的问题。。。
当我运行它时,无论我为我的MENIP键入什么,我的程序都会转到下一行:initFile,它几乎就像我的if语句一样
(if /i %menInp%==play goto initFile
if /i %menInp$==exit EXIT)
他们被忽视了
if /i %menInp$==exit EXIT
应该是
如果/i%MENIP%==退出
或者最好
如果/i“%menInp%”等于“退出”退出
因为您无法预测用户的输入,并且它可能包含空格。
“
使字符串成为单个标记。这是一个注释,但可能会阻止进一步的问题
游戏生成提示:
如果您保留一个字符作为要保存的变量的前缀(例如,我要保存/重新加载的所有变量从#
开始),则保存游戏所需的全部内容是
set #>"mygamefile.txt"
for /f "usebackqdelims=" %%a in ("mygamefile.txt") do set "%%a"
你只需要重新加载一个游戏
set #>"mygamefile.txt"
for /f "usebackqdelims=" %%a in ("mygamefile.txt") do set "%%a"
要清除所有
变量(在重新加载游戏之前很有用),请使用
哦,您可以考虑从代码中删除终端<代码> \/C> >如果存在语句(也将引号中的整个文件名括起来,以允许名称包含空格(并且遵循好的做法,不管您是否需要为文件名中的空格提供空间))
批处理对SET
语句中的空格敏感。SET FLAG=N
将名为“FLAGSpace”的变量设置为“SpaceN”值。语法SET“var=value”
(其中值可能为空)用于确保分配的值中不包含任何多余的尾随空格。