找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: stu_p

[文本处理] [已解决]批处理for命令中tokens^=1*^通过转义后到底表示的什么意思?

[复制链接]
发表于 2011-9-23 13:39:21 | 显示全部楼层
本帖最后由 CrLf 于 2011-9-23 13:48 编辑

其实就是12楼的内容,我发的是爪机链接,pc上的是:http://tieba.baidu.com/p/1184562813?pid=14015225891&cid=0#14015225891
预处理时,for 把所有未被转义的默认分隔符“格式化”成空格,这也是顶楼代码必须对等号、逗号等进行转义的原因。那段例子就是为了说明这点,先让字符串被错误分隔,使其中的内容被“格式化”,再去除多余双引号就行了,说得比较乱,去掉回显试一下也许就懂了。所以平时碰到这种既有双引号也有默认分隔符的字符串时要留神,最好用变量延迟绕过针对语块的预处理。
发表于 2011-9-25 13:24:42 | 显示全部楼层
回复 9# stu_p


    可能没说清楚,我说的分隔符不是针对集合〈括号〉的,而是针对参数的。for的参数一般要使用双引号,但他这里没有使用,是特例。你也可以这样试试:
for  /f  tonken=1 delims=  %%a  in ("a" b c") do echo;%%a
或:
for /f "token=1" "delims=" %%a in ("a b c") do echo;%%a
发表于 2018-9-10 17:50:01 | 显示全部楼层
本帖最后由 6508as 于 2018-9-10 17:51 编辑

回复 17# cjiabing

学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:34 , Processed in 0.010071 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表