[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 CrLf 于 2011-9-23 13:48 编辑

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

TOP

回复 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
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

本帖最后由 6508as 于 2018-9-10 17:51 编辑

回复 17# cjiabing

学习了

TOP

返回列表