注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT求助&讨论
» [已解决]批处理for命令中tokens^=1*^通过转义后到底表示的什么意思?
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
 
1
2
返回列表
发帖
CrLf
发短消息
加为好友
CrLf
当前离线
UID
30406
帖子
6388
精华
2
积分
18843
PB
15777
技术
982
捐助
100
阅读权限
255
在线时间
5536 小时
注册时间
2010-10-9
最后登录
2024-5-10
论坛巡查
帖子
6388
积分
18843
技术
982
捐助
100
注册时间
2010-10-9
16
楼
跳转到
»
发表于 2011-9-23 13:39
|
只看该作者
本帖最后由 CrLf 于 2011-9-23 13:48 编辑
其实就是12楼的内容,我发的是爪机链接,pc上的是:http://tieba.baidu.com/p/1184562813?pid=14015225891&cid=0#14015225891
预处理时,for 把所有未被转义的默认分隔符“格式化”成空格,这也是顶楼代码必须对等号、逗号等进行转义的原因。那段例子就是为了说明这点,先让字符串被错误分隔,使其中的内容被“格式化”,再去除多余双引号就行了,说得比较乱,去掉回显试一下也许就懂了。所以平时碰到这种既有双引号也有默认分隔符的字符串时要留神,最好用变量延迟绕过针对语块的预处理。
链接:
在线第三方命令行工具下载
bat、vbs、js 原生混编
TOP
cjiabing
发短消息
加为好友
cjiabing
(甲兵时代)
当前离线
UID
7853
帖子
1726
精华
2
积分
4476
PB
4191
技术
95
捐助
0
阅读权限
254
在线时间
1303 小时
注册时间
2008-12-21
最后登录
2018-10-23
荣誉版主
帖子
1726
积分
4476
技术
95
捐助
0
注册时间
2008-12-21
17
楼
发表于 2011-9-25 13:24
|
只看该作者
回复
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
发短消息
加为好友
6508as
当前离线
UID
22618
帖子
18
精华
0
积分
23
PB
23
技术
0
捐助
0
阅读权限
5
在线时间
32 小时
注册时间
2010-3-18
最后登录
2019-4-8
列兵
帖子
18
积分
23
技术
0
捐助
0
注册时间
2010-3-18
18
楼
发表于 2018-9-10 17:50
|
只看该作者
本帖最后由 6508as 于 2018-9-10 17:51 编辑
回复
17#
cjiabing
学习了
TOP
 
1
2
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]