我是新来的,所以我会尽力做到最好。
所以我正在尝试制作一个基于文本的 MS-DOS 的 RPG,而且我进展得很好,因为我刚刚看到如果用户在 set /p 处输入了无效的输入,比如一个空答案(只需按 Enter)或一个不在“IF”上的答案,批处理只是崩溃,我想修复它,这样它就会不那么崩溃。
这是我想修复的部分之一:
@echo off
title "Wasteland Adventure"
color 0A
cls
:Menu
cls
echo.
echo.
echo Welcome to Wasteland Adventure
echo.
echo To start a new game, type NEW and press ENTER.
echo To see instructions for the game, type INSTRUCTIONS and press ENTER.
echo To quit, type QUIT and press ENTER.
set input=
set /p input=What do you want to do?
if %input%==new goto INTRO
if %input%==instructions goto INSTRUCTIONS
if %input%==quit goto EXIT
提前致谢
这不是set /p
崩溃了,但是:
if %input%==new
如果 %input% 为空,则解析为:
if ==new
显然是语法错误。为了避免这种情况,请使用:
if "%input%"=="new"
空输入将被解析为:
if ""=="new"
效果很好。
当变量仅包含空格和/或制表符时,同样适用:
if == new
(语法错误)与if " " == "new"
(运行良好)
完整代码如下:
:Menu
set input=
set /p input=What do you want to do?
if "%input%"=="new" goto INTRO
if "%input%"=="instructions" goto INSTRUCTIONS
if "%input%"=="quit" goto EXIT
REM for any other (invalid) input:
goto :Menu
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)