【问题标题】:how to delim by double quotes in a for in batch scripting如何在批处理脚本中用双引号分隔
【发布时间】:2016-11-14 08:53:46
【问题描述】:

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

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

)

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

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

【问题讨论】:

    标签: batch-file for-loop delimiter


    【解决方案1】:

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

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

    即使是空格也必须转义才能创建单个选项令牌。
    for /f tokens^=1^,2^,3 delims^=^&lt;^"^= %%a
    将分为 for - /f - tokens=1,2,3 - delims=&lt;"=

    但是/F 只需要一个或没有选项标记。

    【讨论】:

    • @jeb 你可以让生活更轻松一点,for /f tokens^=1-3delims^=^&lt;^"^= %a 也可以。 tokens^=1-3 范围内的连字符不需要转义,选项之间的空格也不是必需的。
    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 2015-12-13
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多