>startup.cmd 在条件和 goto 上尝试过带或不带括号,也尝试过不带引号,当然还有同一行上的-6ren">
gpt4 book ai didi

batch-file - 批处理 : if statement with string comparison always returns true

转载 作者:行者123 更新时间:2023-12-02 18:48:19 24 4
gpt4 key购买 nike

if "x%1" == "x" (
goto :l2
)
:l2
echo doskey %1>>startup.cmd

在条件和 goto 上尝试过带或不带括号,也尝试过不带引号,当然还有同一行上的 goto - 它总是返回 true。

最佳答案

你有一个非常愚蠢的错误:-)

如果条件为真,您将转到标签。

如果条件为假,您不会转到,但您会跳到下一行,这恰好是您的标签。

无论哪种方式结果都是相同的!

其他问题 -

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

关于batch-file - 批处理 : if statement with string comparison always returns true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com