String 空字符串和未创建变量之间有什么不同
批处理文件中的空字符串和未创建变量之间有什么不同? 如果他们有任何不同,你能给我举一个使用空字符串和非创建字符串的例子吗String 空字符串和未创建变量之间有什么不同,string,batch-file,variables,String,Batch File,Variables,批处理文件中的空字符串和未创建变量之间有什么不同? 如果他们有任何不同,你能给我举一个使用空字符串和非创建字符串的例子吗 @echo off title Empty String Vs None Created Variable set String= set variable=exist if [%String%] == [] echo its be a Empty String if [%variable%] == [] echo its be a Empty String if [%non
@echo off
title Empty String Vs None Created Variable
set String=
set variable=exist
if [%String%] == [] echo its be a Empty String
if [%variable%] == [] echo its be a Empty String
if [%none_exist_var%] == [] echo its be a Empty String
非常感谢 没有区别。阅读: 键入
SET
,仅使用变量名和等号:
SET _department=
更好的是,确保=
位置后没有尾随空格
括号或引号中的表达式:
(SET _department=)
或
SET "_department="
批处理文件中的变量可以是
- 已定义:存储一个值,并使用关联名称检索该值,即变量名
- 未定义:没有值,在连续性中不需要关联的名称,因此它不存在
- 从未定义的变量在环境块中没有任何条目
- 具有not值的变量在环境块中没有任何条目
如果“%varName%”=。。。。
如果启用了命令扩展(默认配置是启用它们),您还可以使用更安全的替代方法
如果未定义varName。。。。
如果定义了varName。。。。
注意,在这种语法中,由于我们不试图读取变量中的值,因此使用的是
varName
,而不是%varName%
,因此无法使用空字符串批量定义变量<代码>设置“var=”命令删除变量。@Aacini可以。这就是为什么在if
中进行比较时需要引号或其他文本的原因,否则if%var%==text
如果%var%
不包含任何内容,则可能会失败@LưuVĩnhPhúc:维基百科的链接文章并不清楚。正如我之前所说的,没有办法用空字符串批量定义变量。我邀请您测试此命令:如果定义了var echo Value=“%var%”
并在得到此结果时报告:Value=“
@Aacini我刚刚检查过,因此您可以删除变量,然后将其用作null@LưuVĩnhPhúc:我不明白你最后的评论与这个话题有什么关系。我说过,没有办法在批处理中用空字符串定义变量set“var=“
命令删除变量,但您在第一条评论中说:“可以将变量设置为null”。这两点是相反的,只有一点是对的(另一点是错的)。你对这个话题还有什么评论吗?我会用“传统的”或“历史的”来代替“通常的”。如果“%varname%”包含自己的引号,则if=“varname%”语法可能会失败。这就是发明if defined varName
语法的一个主要原因——无论值是多少,它总是成功的<代码>如果“%varName%”==“应该避免”
。@dbenham,我使用的是我通常在发布的代码中看到的惯常用法。我知道这种用法背后的问题。不管怎样,我喜欢提议的传统术语,谢谢。答案更新了。是的,我理解你使用的“通常”,这并没有错。但我更喜欢你编辑的版本:-)