我正在为用户界面编写批处理脚本,您可以在其中输入数字1 - 10.这非常类似于以下示例:
@echo OFF :ask cls echo press 1 for test1 echo press 2 for test2 set /p input= if %input% == 1 goto test1 if %input% == 2 goto test2 if %input% GTR 10 goto ask goto ask :test1 shutdown :test2 net view pause goto ask
我有%输入%GTR 10转到问题,并且最后goto在全球询问,因为如果有人输入不同的东西,它将回到问题。 当我输入不同的东西时,为什么它会让我失去终端?
答案 0 :(得分:2)
如果输入带空格的字符串,if
语法将给出语法错误。我们来看看:
if hello world == string echo xyz
if
语法为:if <value1> <comparator> <value2> command
所以hello
是value1,world
是比较器 - 等等 - 什么? world
不是比较器 - 语法错误。
将您的值包含在quoutes中以确保安全:
if "hello world" == "string" echo xyz
因此"hello world"
是value1,==
是比较器,"string"
是value2,echo xyz
是命令。一切顺利。
您可能对choice命令感兴趣,该命令执行错误处理并仅允许有效密钥。