Windows 是否有任何方法可以创建一个带有“变量”的字符串;逗号“;批处理程序

Windows 是否有任何方法可以创建一个带有“变量”的字符串;逗号“;批处理程序,windows,batch-file,Windows,Batch File,我正在尝试在批处理程序中创建一个如下变量: SET var=abc,def 此命令在命令行中运行良好。 但当我在批处理文件中放入同一行时,会出现错误: 是否有其他方法可以通过连接或其他方式创建此字符串 我基本上是检查当前目录下存在的一些目录,并以逗号分隔保存当前目录的名称 这就是我的代码的样子 设置“dirArray=null” 如果存在dir1( 如果%dirArray%eq为空( 设置“dirArray=src/main” )否则( 设置“dirArray=%dirArray%,dir1”

我正在尝试在批处理程序中创建一个如下变量:

SET var=abc,def
此命令在命令行中运行良好。
但当我在批处理文件中放入同一行时,会出现错误:

是否有其他方法可以通过连接或其他方式创建此字符串

我基本上是检查当前目录下存在的一些目录,并以逗号分隔保存当前目录的名称 这就是我的代码的样子

设置“dirArray=null” 如果存在dir1( 如果%dirArray%eq为空( 设置“dirArray=src/main” )否则( 设置“dirArray=%dirArray%,dir1” ) ) ... // 如果存在不同目录的情况,则提供更多信息 间接地回答了这个问题 上面的链接是需要转义的字符列表 ,应转义为^

因此,将集合“dirArray=%dirArray%,dir1”替换为集合“dirArray=%dirArray%^,dir1”是可行的


感谢大家的帮助

变量中的逗号没有什么特别之处。您的错误在其他地方您可能希望使用批处理文件或至少重要的部分编辑您的帖子。正如jeb所提到的,变量中的逗号其实并没有那么特别。在其周围添加引号是防止有毒字符破坏代码的一个很好的做法。例如:
SET“var=abc,def”
请包含更多文件,因为
def
在此文本中未设置为变量。需要转义的所有字符以及如何转义的列表,请注意逗号不是其中之一。看到您的代码意味着您的
集以前可以工作,您的问题出现在另一个代码行
def not defined