2

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

 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”命令,但我认为这不是我需要的。

谢谢!

4

1 回答 1

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

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

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

于 2014-03-24T06:52:11.937 回答