中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 13:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for /f 使用时的一个限制。 查看 828 回复 4
楼 主 for /f 使用时的一个限制。 发表于 2010-03-08 12:00 ·  中国 湖南 株洲 电信
新手上路
积分 11
发帖 11
注册 2009-12-29 17:21
16年会员
UID 157557
性别 男
状态 离线
有文件b.txt内容是: aa3vv4bb34cc4dd34ff

我想要以”34“为分隔字符串,提取字符串:

-----------------------------------------
@echo off
for /f "delims=34 tokens=1,2,3*" %%i in (b.txt) do (
echo %%i---%%j---%%k
)
pause
-----------------------------------------
我本来是想用“34”作为一个分隔字符串,处理后输出“aa3vv4bb--cc4dd--ff“,但批处理运行时却不是把”34“当作一个整体来处理的,所以没有得到我想要的结果(输出的是“aa---vv---bb”)。有什么简单的办法可以实现呢?

[ Last edited by abxialiang on 2010-3-8 at 12:10 ]
2 发表于 2010-03-08 12:53 ·  新加坡
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
先把34替换成一个文本中不会出现的字符,再用这个字符作为列分隔符。
3 发表于 2010-03-09 01:17 ·  中国 天津 电信
初级用户
★★
积分 128
发帖 122
注册 2009-09-21 06:24
16年会员
UID 152378
性别 男
状态 离线
那就是说不能直接以34本身作为分隔符?就是说不能用2位及以上长度的字符串作为分隔符了?
4 发表于 2010-03-09 12:06 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
是的,for命令会把你设置的字符串拆分成单个字符。
5 发表于 2010-03-09 14:11 ·  中国 湖南 株洲 电信
新手上路
积分 11
发帖 11
注册 2009-12-29 17:21
16年会员
UID 157557
性别 男
状态 离线
知道了,谢谢版主了
论坛跳转: