当我输入带有空格的输入时,批处理 cmd 退出



我正在为用户界面编写一个批处理脚本,您可以在其中输入数字 1 - 10。 它很像这个例子:

@echo关闭:问中文名录回声按下 1 进行测试 1回声按下 2 进行测试 2设置/p 输入=如果 %输入% == 1 转到测试1如果 %输入% == 2 转到测试2如果 %输入% GTR 10 转到询问转到询问:测试1关闭:测试2网络视图暂停转到询问

我有 %input% GTR 10 转到询问,最后转到全局中询问,因为如果有人键入不同内容,它将返回到问题。为什么当我输入不同的东西时,它会让我崩溃出终端?

如果输入带空格的字符串,if语法会给你一个语法错误。让我们看看:

if hello world == string echo xyz

if语法为:if <value1> <comparator> <value2> command
所以hello值 1,world是比较器 - 等等 - 什么? world不是比较器 - 语法错误。

为了

安全起见,将您的值括在 quoutes 中:

if "hello world" == "string" echo xyz

因此"hello world"是值 1,== 是比较器,"string"是值 2,echo xyz是命令。一切顺利。

您可能对 choice 命令感兴趣,该命令执行自己的错误处理,并且只允许有效键。

最新更新