设置 /p 空答案崩溃

2024-02-21

我是新来的,所以我会尽力做到最好。

所以我正在尝试制作一个基于文本的 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(使用前将#替换为@)

设置 /p 空答案崩溃 的相关文章

随机推荐

  • 将文本环绕在右侧浮动列周围,其中左侧列首先出现在 html 中

    h1 tab1 tab2 tab3 text text photo text text photo text text photo text text photo text text photo text text text text te
  • JT400.jar 禁用登录屏幕

    谁能帮我吗 我有一个小型实用程序应用程序 它使用 Jt400 6 7 jar 连接到 AS400 服务器 请看下面的代码 private Connection buildConnection String url String userNa
  • 为什么我的代码只写最后一行?

    我正在向文件写入一个列表 但它只写入最后一行 这是我的代码 我使用的是Python 2 7 server os listdir contents of the current directory for files in server pu
  • 如何将 C# 哈希字节数组转换为字符串以传递给 API?

    我有许多值必须组合成 SHA256 哈希才能传递到 Web 服务 使用 Encoding ASCII GetBytes allparametershere 将这些值组合成字节数组 然后通过 myHashMethod ComputeHash
  • sql左连接返回

    我正在尝试在 2 个表上运行左连接 我没有分组依据 我唯一的条件是在第二张桌子上 但是 返回的行数少于第一个表 左连接不是应该从第一个表中获取所有数据吗 这是我的 SQL select from tbl a A left join tbl
  • 如何在 Haskell 中编写 Ctrl-C 处理程序?

    我尝试了以下方法 import System Exit import System Posix Signals import Control Concurrent threadDelay main IO main do installHan
  • 为什么在 JS 中使用 NULL 和逻辑运算符会抛出错误

    这是我正在测试的代码 工作正常 document write 1 undefined prints undefined document write 1 3 prints 3 document write 1 true prints tru
  • 假装客户端无法拨打电话 - Kubernetes

    我已经在 Windows 的 docker desktop 上部署了微服务 并且 feign 无法调用另一个服务 个人MS通过假装呼叫组织MS 我可以在 person pod 的日志中看到 2019 11 10 12 58 34 000 I
  • 如何使用从字符串到 float64 的类型转换来解码 JSON

    我需要使用浮点数解码 JSON 字符串 例如 name Galaxy Nexus price 3460 00 我使用下面的 Golang 代码 package main import encoding json fmt type Produ
  • 如何防止将 Windows 临时删除关闭文件上打开的内存映射刷新到磁盘

    更新 2 TL DR 有没有办法防止窗口脏页FILE FLAG DELETE ON CLOSE临时文件是否会因关闭在这些文件上打开的内存映射而被刷新 Yes 如果您在初始创建后不需要对文件本身执行任何操作 并且您实现了一些命名约定 则可以通
  • 抽象工厂与工厂方法(范围)

    工厂方法是类设计模式 抽象工厂使用了许多工厂方法 为什么抽象工厂是对象设计模式 而不是类设计模式 抽象工厂将实例化推迟到哪个对象 抽象工厂模式将产品对象的创建推迟到 ConcreteFactory 子类 由于客户端期望 Factory 类
  • 如何在Android中删除SIM卡中的联系人

    我执行了以下代码来从 SIM 卡中删除选定的联系人 但它不会删除 也不会抛出任何错误 protected void DeleteContacts ArrayList
  • 闪亮仪表板的选项卡框 CSS

    我正在尝试更改选项卡样式tabBox in shinydashboard 我能够更改未选择的选项卡的背景 但无法更改所选选项卡的背景或每个选项卡中显示的文本 这是我添加到 custom css 文件中以更改未选择的选项卡背景的内容 nav
  • module.export和export有什么区别

    有什么区别module export and export 如果 module export 对象中有一些属性怎么办 将要export xx那么无效吗 首先它是exports and module exports并不是export and
  • 在Python中自动下载所需模块的最简单方法?

    我想发布一个我编写的 python 模块 它依赖于几个包 最简单的方法是什么 以便以编程方式下载这些软件包 以防它们在正在运行的系统上不可用 大多数这些模块应该可以通过 easy install 或 pip 或类似的东西获得 我只是想避免用
  • 对相似的时间序列进行聚类?

    我有 10 20k 个不同的时间序列 24 维数据 一天中每个小时的一列 并且我对表现出大致相同活动模式的时间序列进行聚类感兴趣 我最初开始实施动态时间扭曲 DTW 是因为 并非我所有的时间序列都完全一致 出于我的目的 两个稍微偏移的时间序
  • 通过IP地址查找位置Nodejs mongodb [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试查找 IP 地址的位置 IP 地址将通过前端 Android iOS 应用程序发送到 API
  • pkgdown 小插图代码块间距

    我在运行时遇到代码块输出问题pkgdown build site 与所有默认选项 块被渲染在html内容 https mountainmath github io cancensus articles Making maps with ca
  • 使用 IIS 10 设置 Laravel 5.4

    我想在 Windows Server 2016 上运行的 IIS 10 上部署 Laravel 项目 最简单且仍然安全的方法是什么 我就是这样做的 我不确定这是正确的方法 安装 URL 重写模块 https www iis net down
  • 设置 /p 空答案崩溃

    我是新来的 所以我会尽力做到最好 所以我正在尝试制作一个基于文本的 MS DOS 的 RPG 而且我进展得很好 因为我刚刚看到如果用户在 set p 处输入了无效的输入 比如一个空答案 只需按 Enter 或一个不在 IF 上的答案 批处理