if "x%1" == "x" (
goto :l2
)
:l2
echo doskey %1>>startup.cmd
Run Code Online (Sandbox Code Playgroud)
有和无的条件和转到括号都试过了,也试过不带引号,并在同一行当然goto语句 - 它总是返回true.
你有一个非常愚蠢的错误:-)
如果条件为真,则转到标签.
如果条件是假的,你不要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
Run Code Online (Sandbox Code Playgroud)
你真的不需要goto:
if "%~1" neq "" echo doskey %1>>startup.cmd
Run Code Online (Sandbox Code Playgroud)