如何使用尖括号作为for / f分隔符

时间:2015-12-17 05:27:11

标签: windows batch-file for-loop

如何使用或转义大于或小于符号作为for / f循环中的分隔符?

我无法在任何地方找到答案。有人可以启发我吗?

2 个答案:

答案 0 :(得分:3)

for /F options需要escaped,即(通常)包围在“引号”中:

  

FOR /F:针对一组文件的循环命令 - 有条件地执行   针对每个项目的命令。

     

语法

    FOR /F ["options"] %%parameter IN (filenameset) DO command 

    FOR /F ["options"] %%parameter IN ("Text string to process") DO command

但是,如果不在引号中包含options,则需要转义分隔符(即逗号 ,分号 ;等于 = space 标签 )和cmd-poisonous字符(例如<>|&几个< /强>

<强>实施例

==> for /f "tokens=1,2,3 delims=<> " %G in (" aa < bb > dd ") do @echo .%G.%H.%I.
.aa.bb.dd.

==> for /f tokens^=1^,2^,3^ delims^=^<^>^  %G in (" aa < bb > dd ") do @echo .%G.%H.%I.
.aa.bb.dd.

==> for /f "tokens=1-3 delims=<>" %G in (" aa < bb > dd ") do @echo .%G.%H.%I.
. aa . bb . dd .

==> for /f tokens^=1-3^ delims^=^<^>  %G in (" aa < bb > dd ") do @echo .%G.%H.%I.
. aa . bb . dd .

==>

答案 1 :(得分:2)

尝试

FOR /F "delims=<" %%parameter IN (filenameset) DO command 

FOR /F "delims=>" %%parameter IN (filenameset) DO command