中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 08:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:数据分割、删除的问题(含特殊符号)! 查看 720 回复 4
楼 主 求助:数据分割、删除的问题(含特殊符号)! 发表于 2007-11-05 14:42 ·  中国 北京 电信
初级用户
积分 80
发帖 27
注册 2007-04-27 05:13
19年会员
UID 86612
性别 男
来自 BJ
状态 离线
现有如下数据:

list.txt

017729FDC48E84C6F1F35E6584BBB85D(my_70084) Tent.ecn
04B8D58A63F686C234995B4F39E465C1(9e) TrneGames.eop
0BEA7BD894B170A92B85142E6DC7F929(dodolook4.exe)/stream/data0002/data0003 nare.nmus.aiu
0BEA7BD894B170A92B85142E6DC7F929(dodolook412.exe)/stream/data0002/data0004 n2.Cinmus.aiu
0D091E5DE004F734E95AE154F7F2F438(djatl.dll)/UPack TrneGames.eoc
0E16E6D69595DE409B1A5197149202A9(kvmxfma.dll) TeGames.fhm
0FC934A02DFD35AE51157C1B29225D70(15[1].exe)/PE_Patch/UPack TineGames.dxp
10F30005C92F91AD3225573D0AFA31A8(qiji[1].exe)/PE_Patch/UPack TLineGames.ekb

用空格分为两列,但第一列中,()后面会包含/xxx/xxx/xxx 的无用字符,而且/的数量不固定。

想将/xxxx/xxx/xxx去除,不知for能否搞定(用for取头、尾列,但不知如何写)。也想使用sed,但“/”是sed的专用参数分隔符,还没找到解决方法(bat和sed都是初级),在此求助!
2 发表于 2007-11-05 14:59 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
@echo off
sed "/\// s#/[^/ ]*##g" list.txt
pause
3 发表于 2007-11-05 15:15 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
@echo off
for /f "tokens=1* delims=/" %%i in (list.txt) do (
if not "%%j"=="" (
set str=%%j
call echo %%i %%str:* =%%
) else (
echo %%i
)
)
pause
4 发表于 2007-11-05 15:57 ·  中国 北京 电信
初级用户
积分 80
发帖 27
注册 2007-04-27 05:13
19年会员
UID 86612
性别 男
来自 BJ
状态 离线
多谢abcd了,帮助若干次了!两种代码都可以,但bat的可能有问题,没有全部执行完成,我再找找问题。
5 发表于 2007-11-05 16:00 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
我是用楼主给的那八行字符串测试的

那八行是没问题的,其它的就不知道了
论坛跳转: