中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-25 06:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for中的delims=可以是字符窜吗? 查看 5,894 回复 29
16 发表于 2007-10-19 19:46 ·  中国 浙江 绍兴 电信
中级用户
积分 220
发帖 38
注册 2004-08-12 00:00
21年会员
UID 30048
性别 男
状态 离线
双感叹号与双%号的区别是什么呢
for的do里面好像看到的是!n!
其他的像echo看到的是%n%

这个可以讲讲吗
17 发表于 2007-10-19 19:47 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
看置顶FAQ。
18 发表于 2007-10-19 20:56 ·  中国 河北 邯郸 电信
初级用户
积分 30
发帖 12
注册 2007-10-19 18:07
18年会员
UID 100183
性别 男
状态 离线
tokens=1* 这个是什么意思 我没看懂
19 发表于 2008-01-25 00:38 ·  中国 广西 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
还是版主高明啊,佩服
20 发表于 2008-02-22 16:15 ·  中国 广东 汕头 潮阳区 电信
初级用户
积分 53
发帖 20
注册 2007-06-08 18:31
19年会员
UID 90697
性别 男
状态 离线
自己试了一下,把word当成分隔符
@ echo off
set "a=333ps555psssword=123 456 789"
for /f "tokens=1* delims=word" %%i in ("%a%") do set b=%%i&set num=%%j
echo %b:~0,-4% %num%
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
nanhui112 +1 2008-03-07 21:52
21 发表于 2008-03-07 21:52 ·  中国 广西 南宁 电信
初级用户
★★
积分 127
发帖 59
注册 2007-11-13 00:41
18年会员
UID 102491
性别 女
状态 离线
这个问题值得研究研究...就是当 delims=字符串时 以什么样的方式分割.
22 发表于 2008-03-08 14:24 ·  中国 广东 佛山 南海区 电信
初级用户
★★
积分 131
发帖 72
注册 2008-02-24 14:31
18年会员
UID 111317
性别 男
状态 离线
善用变量,多用 偷梁换柱
23 发表于 2008-03-08 15:01 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
delims=字符串时 举例:
如果字符串是abc
则起到分割作用的分割符有
a,b,c,ab,ac,bc,abc
学过排列组合的就知道不管字符的长度为多少,分割符总是为:
Cn1+Cn(n-1)..........Cnn,就有这么多的可能!
24 发表于 2008-03-08 22:56 ·  中国 广西 南宁 电信
初级用户
★★
积分 127
发帖 59
注册 2007-11-13 00:41
18年会员
UID 102491
性别 女
状态 离线
只能主观这么认为 我的意思是字符串在被分割的字符串中有什么特点时 已什么样的方式分割
我也是实验知道的 列如若delims=中的字符串具有唯一性时 会以第整串字母作为分割符 否则 会以第一个字符作为分割符 不够准确 望大虾指出!
25 发表于 2008-03-09 15:41 ·  中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
Originally posted by nanhui112 at 2008-3-8 10:56 PM:
只能主观这么认为 我的意思是字符串在被分割的字符串中有什么特点时 已什么样的方式分割
我也是实验知道的 列如若delims=中的字符串具有唯一性时 ...


"delims=abcedef"

无论 那种情况 delims 的分割 是以 等号 后的每一个字符作为分隔符的

只是在 所谓的 "唯一性" 时 看起来 像 以整个字符串为分隔符而已
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
nanhui112 +1 2008-03-10 21:26
26 发表于 2008-07-01 10:03 ·  中国 江西 南昌 电信
初级用户
积分 48
发帖 19
注册 2008-04-16 19:57
18年会员
UID 116095
性别 男
状态 离线
经测试,还可以用一个汉字作分隔符,
我的理解,分隔符是一个字节
Originally posted by 26933062 at 2007-5-26 12:10 AM:
哦.原来这样,就是说只能以一个单一的字母或符号作分隔符 是吗?

[ Last edited by 26933062 on 2007-8-11 at 05:59 AM ]
27 发表于 2008-07-02 08:55 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
Originally posted by wjmm at 2008-7-1 10:03:
经测试,还可以用一个汉字作分隔符,
我的理解,分隔符是一个字节

正如 3 楼说的,只能以一个单一的字母或符号作分隔符,而不是一个字节(一个汉字是两个字节)
28 发表于 2008-07-02 15:16 ·  中国 江西 南昌 电信
初级用户
积分 48
发帖 19
注册 2008-04-16 19:57
18年会员
UID 116095
性别 男
状态 离线
经测试,分隔符可以是一个汉字
比如,有一文本文件test.txt,其内容如下
-------------------------------------------------------------------------------
111111你2222222你3333333333你4444444
55555你66666你7777777777777777777你88888
9999你00000你aaaaaaaa你bbbbbb
---------------------------------------------------------------------------------

批处理代码
@echo off
FOR /F "tokens=1,3,4 delims=你" %%a in (test.txt) do @echo %%a %%b %%c
pause

执行该批处理后,可以发现汉字“你”确实可以作为分隔符

字节"

Originally posted by zh159 at 2008-7-2 08:55 AM:

正如 3 楼说的,只能以一个单一的字母或符号作分隔符,而不是一个字节(一个汉字是两个字节)


[ Last edited by wjmm on 2008-7-3 at 11:30 AM ]
29 发表于 2009-10-29 12:16 ·  中国 福建 厦门 电信
初级用户
积分 36
发帖 22
注册 2009-09-12 00:31
16年会员
UID 151867
性别 男
来自 厦门
状态 离线
确实很好,学习了
30 发表于 2009-10-31 15:26 ·  中国 四川 成都 电信
初级用户
★★
积分 145
发帖 95
注册 2008-04-12 16:29
18年会员
UID 115703
性别 男
状态 离线
楼上的兄弟挖坟能力好强……看了半天,才知道是2年前的帖子了……不过也很经典
论坛跳转: