如何在批处理脚本中用双引号分隔

how to delim by double quotes in a for in batch scripting

我有一个文件,我想使用 for 命令来浏览它。我的问题是我尝试用双引号字符 ["] 分隔,我必须转义它,所以我的 for 看起来像这样:

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

)

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

关于如何用双引号分隔而不必转义所有其他字符有什么建议吗?

问题是,您使用的选项没有包含引号,
FOR /F "tokens=1,2 delims=[]" ...

但是如果你想使用引号作为分隔符,你就不能再使用封闭的引号了。
然后几乎所有字符都必须使用插入符号进行转义,因为 ,=;<space> 也是标准的标记分隔符。

甚至连空格都必须转义才能创建单个选项标记。
for /f tokens^=1^,2^,3 delims^=^<^"^= %%a
会被分成 for - /f - tokens=1,2,3 - delims=<"=

但是 /F 需要一个或 none 选项标记。