2016-11-14 129 views
2

我有一个文件,我希望使用for命令来检查它。我的问题是,我试图通过双引号字符[“]来DELIM,我要逃跑,所以我的应该是这样的:如何在批处理脚本中使用双引号分隔

for /f tokens^=1^,2^,3^ delims^=^<^"^= %%a in ("%%i") do (

) 

而且我不明白为什么它,如果我删除最后[^]从tokens tokens^=1^,2^,3**^**我得到一个错误:?是delims是意外

我如何可以用双引号DELIM并没有逃避所有其他字符任何建议

回答

4

的问题是,你使用不包含引号的选项,
like in FOR /F "tokens=1,2 delims=[]" ...

但是,如果你想使用一个报价作为分界符,你不能再使用附加引号。
然后几乎所有的字符必须用脱字符号逃脱,因为,=;<space>也是标准的令牌分隔符。

即使空间必须转义才能创建单个选项令牌。
for /f tokens^=1^,2^,3 delims^=^<^"^= %%a
将被分成 for - /f - tokens=1,2,3 - delims=<"=

/F期望的是一个或没有选择标记。

+0

我明白了,所以我必须坚持这一点,嗯,好吧:),thx – TBogdan

+2

@jeb你可以让生活变得更容易一些,对于/ f tokens^= 1-3delims^=^<^“^ = %a'也可以,连字符不需要为'token = 1-3'的范围转义,并且选项之间的空格不是必需的。 – LotPings

相关问题