if "x%1" == "x" (
goto :l2
)
:l2
echo doskey %1>>startup.cmd
在条件和 goto 上尝试使用和不使用括号,也尝试不使用引号,当然 goto 在同一行 - 它总是返回 true。
if "x%1" == "x" (
goto :l2
)
:l2
echo doskey %1>>startup.cmd
在条件和 goto 上尝试使用和不使用括号,也尝试不使用引号,当然 goto 在同一行 - 它总是返回 true。
你有一个非常愚蠢的错误:-)
如果条件为真,则转到标签。
如果条件为假,您不会转到,但您会进入下一行,这恰好是您的标签。
无论哪种方式,结果都是一样的!
其他问题 -
1)我认为你的逻辑是颠倒的。我相信你只想 GOTO :l2 如果 %1 被定义,你有相反的。
2) (包括引号)的 %1 值"A&B"
将失败。更好地使用"%~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