表示% %不存在



这段代码需要知道,如果我输入"go west"并且"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

这可能是一个有点奇怪的代码,但我已经测试过了,它确实工作。将此添加到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

我找到了答案。

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
echo this does not exist
pause
goto play

最新更新