if "x%1" == "x" (
goto :l2
)
:l2
echo doskey %1>>startup.cmd
在条件和goto上尝试使用和不使用括号,也尝试不使用引号,当然转到同一行 - 它总是返回true。
答案 0 :(得分:7)
你有一个非常愚蠢的错误: - )
如果条件为真,则转贴标签。
如果条件是假的,你不要GOTO,但是你会掉到恰好是你的标签的下一行。
同样的结果!
其他问题 -
1)我认为你的逻辑是颠倒过来的。我相信你只想要GOTO:l2如果定义了%1,你就会反过来。
2)"A&B"
(包括引号)的%1值将失败。最好使用"%~1"
代替"%1"
3)比较中不需要x。
轻松修复:
if "%~1" neq "" goto :l2
exit /b
:l2
echo doskey %1>>startup.cmd
你真的不需要goto:
if "%~1" neq "" echo doskey %1>>startup.cmd