这段代码需要知道,如果我输入"去西部"和#34; p"不存在它会告诉我它不存在。这是代码。
:type
set /p menu=type:
if "%menu%" == "go north" goto north
if "%menu%" == "go south" goto south
if "%menu%" == "go east" goto east
if "%menu%" == "go west" goto west
:north
set /a p=%p%+50
goto %p%
:south
set /a p=%p%-50
goto %p%
:east
set /a p=%p%+1
goto %p%
:west
set /a p=%p%-1
goto %p%
如果代码的编号为300,则输入" go west" " P"等于301,需要说这个数字不存在。我不想让这个号码成为类型,并且在它下面说它不存在。例如,
:301
echo does not exist
pause
goto play
答案 0 :(得分:1)
这可能是一个奇怪的代码,但我测试了它,它确实有效。将其添加到goto %p%
,它应该有效:
goto %p% || start fail.bat&exit
您需要创建另一个名为“fail.bat”的文件,该文件需要包含以下代码:
echo Does not exist
pause>nul
start (Whatever your file is called).bat
exit
基本上,两行(||)表示在找到子程序失败时会执行以下操作。因此,如果找不到p的变量,它将在fail.bat重新启动之前启动失败并退出。
希望这可以帮助!
来源:的http://ss64.com/nt/goto.html
答案 1 :(得分:0)
我找到了答案。
set movew=0
set movee=0
set moven=0
set moves=0
This is set up before the ":type".
:north
if %moven% equ 1 goto moven
set /a p=%p%+50
goto %p%
:south
if %moves% equ 1 goto moves
set /a p=%p%-50
goto %p%
:east
if %movee% equ 1 goto movee
set /a p=%p%+1
goto %p%
:west
if %movew% equ 1 goto movew
set /a p=%p%-1
goto %p%
这样可以确保玩家朝那个方向移动,计算机不会添加或减去%p%。
:300
set moven=1
echo
pause
goto play
如果玩家尝试向北移动,则转到" moven"。
:moven
echo this does not exist
pause
goto play