Empty String和none Created Variable之间有什么不同

时间:2017-02-11 07:00:52

标签: string batch-file variables

批处理文件中空字符串和无创建变量之间有什么不同? 如果它们有任何不同,你能告诉我一个使用空字符串vs无创建字符串的例子吗?

let rs = math.eval('cos(45 deg)');

非常感谢!

2 个答案:

答案 0 :(得分:2)

批处理文件中的变量可以是

  • 已定义:存储了一个值以及用于检索值的关联名称,即变量名称。
  • 未定义:没有任何价值,因此不需要相关名称,因此不存在。

这两个简单的规则处理环境块(存储变量/值的位置)的更新方式。如果存在值,则环境块具有值的条目和要检索它的名称。如果没有值,则环境块不会创建条目,或者在将变量设置为空时,将删除该条目。

所以,如果

  • 未定义的变量在环境块中没有任何条目
  • 没有值的变量在环境块中没有任何条目

这两种情况没有任何区别。

注意传统的方式检查变量是否存储值/变量存在是( as dbenham has注释,此语法不建议作为变量值内的引号导致语法问题

if "%varName%"=="" ....

如果启用了命令扩展(并且默认配置是启用它们),您还可以使用更安全的替代方案

if not defined varName ....
if defined varName ....

请注意,在此语法中,由于我们没有尝试读取变量中的值,因此使用了varName,而不是%varName%

答案 1 :(得分:1)

没有区别。阅读Delete a variable

  

仅使用变量名称和等号输入SET

SET _department=
     

更好的是,确保=之后没有尾随空格   括号或引号中的表达式:

(SET _department=)
     

SET "_department="