Batch file 批处理文件为什么要使用double==

Batch file 批处理文件为什么要使用double==,batch-file,Batch File,为什么在批处理文件中使用if%foo%==bar即双等号,而在只有一个的情况下使用set-foo=bar?这是一个常见的编程问题: While=表示赋值: var=5 // var is 5 A==表示比较: var==5 // is var 5 虽然这在技术上不起作用,但请对此进行检查以了解原因: if((var=5)==8) // This essentially says that "'Var is 5' is it 8" // Instead of: if((var=5)=8) /

为什么在批处理文件中使用if%foo%==bar即双等号,而在只有一个的情况下使用set-foo=bar?

这是一个常见的编程问题:

While=表示赋值:

var=5
// var is 5
A==表示比较:

var==5
// is var 5
虽然这在技术上不起作用,但请对此进行检查以了解原因:

if((var=5)==8)
// This essentially says that "'Var is 5' is it 8"

// Instead of:
if((var=5)=8)
// Which says "'Var is 5' is 8"
无论如何,在批处理中,您应该使用eq,而不是==。

第一次在google中使用

[=]Double等于IF命令使用此命令测试两个 字符串相等:

如果%1==转到帮助

表示如果批处理后命令行上的第一个参数 文件名等于零,也就是说,如果第一个参数不是 给定,批处理文件将转到帮助标签

This may be reversed by placing "NOT" after the command:
如果不是%1==转到操作

如果第一个参数不等于零,也就是说,如果 等于,批处理文件将转到“操作”标签

单个equals用于变量赋值。常见于Set

SET [variable=[string]]

@秋水仙子嗯。。我没有否决你的问题:不管是谁,都可能认为你可以通过谷歌得到答案。对不起,我错了。我只是发现这里的人倾向于更好、更彻底地解释事情。@coltonon如果你觉得我的答案有用,请更正。你没有解释==和==之间的区别。我没有看到任何其他线索解释这一点。