我在这里看到了另一个与我类似的问题。答案是使用&
符号在一行中同时运行两个命令。但这是针对两个不同的命令的,我要尝试的两个命令是goto
和echo
。
当我尝试在&
想要的位置后面放一个标牌时echo
,它认为我想要echo
该&
标牌。因此,我尝试将&
符号放在后面,goto EXAMPLETEXT
并认为我想转到批处理文件中的位置EXAMPLETEXT &
。这些命令不知道何时从其命令转到下一个命令。
如果你想知道我用这什么情况下为什么我需要使用这个,就是这个道理是,我问一个问题,set /p answer=Are you ready to begin?:
我再有,if %answer% == Ready goto begin
与if %answer == Not ready goto NOTREADY
和if %answer% == yes goto begin
等。
然后,在所有指定的可接受答案选择的最后,我要提出if not defined %answer% echo Not an acceptable answer & goto READYTOBEGIN?
(发送回问题,以便他们可以重新答案。)但是,由于特定原因,这当然对我不起作用。
随着if exist
使用VARIABLENAME,不是变量本身(无%
)
你的线
if not defined %answer% echo Not an acceptable answer & goto READYTOBEGIN?
解析为(因为%answer%
为空)为:
if not defined echo Not an acceptable answer & goto READYTOBEGIN?
echo
也未定义(可能),因此要执行的命令为Not
-,这会导致错误“找不到命令”。
如果已定义,就不会有错误,但这不会好得多。假设用户输入hello
,则该行被解析为:
if not defined hello echo Not an acceptable answer & goto READYTOBEGIN?
该变量hello
可能未定义,但可能是-因此您会有不可预测的行为。
您的行的正确语法为:
if not defined answer echo Not an acceptable answer & goto READYTOBEGIN?
例如,当用户输入时,您会怎么做qwertzui
?answer
是定义的,因此echo
和goto
被忽略。最好省略最后一个if
completeley,而将行替换为:
echo Not an acceptable answer & goto READYTOBEGIN?
因此会触发,如果answer
未定义或未被前一个if
s捕获
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句