如何使用或转义大于或小于符号作为for / f循环中的分隔符?
我无法在任何地方找到答案。有人可以启发我吗?
答案 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