使用带引号的逗号的Windows命令行FOR命令

时间:2013-11-06 10:54:13

标签: windows batch-file for-loop command-line cmd

我正在尝试处理包含以下格式的值的文件:

 Token1    Token2            Token3    Token4
"ValueA", "ValueB, ValueC", "ValueD", "Value E"

(为了清楚起见,我添加了标题)。我只想要令牌2和4。

以下命令:

for /f "tokens=2,4 delims=," %a in (TestSource.txt) do @echo %a %b

是否有效,但当Token2包含逗号时(如上例所示),由于FOR命令似乎没有更好的知识,因此该逗号被破坏了。

这个限制是否有任何已知的解决方法 - 我做了很多调查并看到了“usebackq”命令,但我认为这不是我需要的。

谢谢!

1 个答案:

答案 0 :(得分:1)

for /f tokens^=3^,7^ delims^=^" %f in (data.csv) do echo "%f", "%g"

有两种方法可以为for命令包含“options”字符串。因为它可以包含空格和特殊字符,第一个是通常引用的字符串。但在某些情况下,这还不够。

第二种方式显示在包含的代码中:转义选项字符串中的所有分隔符。