中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-25 22:16
47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何从一个文本文件拆分为多个文本文件?
可打印版本  6,433 / 18
第1楼 zhaoxf 发表于 2007-01-05 10:49
初级用户 发帖 7 积分 118
如何从一个文本文件拆分为多个文本文件?
原文件(test.txt):
**BEGIN FILE1 (注释:**BENGIN为标志,表示要从此处拆分;FILE1为拆分文件名)
aaaaaaaa ccc
bbbbbbbb cvcv
cccccccc cvcv
dddddddd tytyty
**END
**BEGIN FILE2(注释:**BENGIN为标志,表示要从此处拆分;FILE2为拆分文件名)
ggggggggggg gggg
hhhhhhhhh yyyyy
iiiiiiiiii tyty
**END
**BEGIN FILE3(注释:**BENGIN为标志,表示要从此处拆分;FILE3为要分文件名)
kdsfhkasdfh tyu
dfsdfsdfsdf tyu utyu
sdfsdfsdfadf 667676
**END

此时,需要根据**BEGIN来拆分为多个文本文件,**BENIN后面的FILE1/FILE2/FILE3等为文件名:

文件FILE1:
**BEGIN FILE1
aaaaaaaa ccc
bbbbbbbb cvcv
cccccccc cvcv
dddddddd tytyty
**END

文件FILE2:
**BEGIN FILE2
ggggggggggg gggg
hhhhhhhhh yyyyy
iiiiiiiiii tyty
**END

文件3:
**BEGIN FILE3
kdsfhkasdfh tyu
dfsdfsdfsdf tyu utyu
sdfsdfsdfadf 667676
**END

[ Last edited by zhaoxf on 2007-1-5 at 11:38 AM ]
第2楼 namejm 发表于 2007-01-05 10:56
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  带星号的那些行是原文件里本来就有的吗?你所举的例子太过抽象,如果不介意,请发一段真正内容出来,并在适当的地方加上注释,说明意图,以便于构思代码。
第3楼 zhaoxf 发表于 2007-01-05 10:58
初级用户 发帖 7 积分 118
原文件(test.txt):
**BEGIN FILE1 (注释:**BENGIN为标志,表示要从此处拆分;FILE1为要拆分出的文件名)
aaaaaaaa ccc
bbbbbbbb cvcv
cccccccc cvcv
dddddddd tytyty
**END
**BEGIN FILE2(注释:**BENGIN为标志,表示要从此处拆分;FILE2为要拆分出的文件名)
ggggggggggg gggg
hhhhhhhhh yyyyy
iiiiiiiiii tyty
**END
**BEGIN FILE3(注释:**BENGIN为标志,表示要从此处拆分;FILE3为要拆分出的文件名)
kdsfhkasdfh tyu
dfsdfsdfsdf tyu utyu
sdfsdfsdfadf 667676
**END


感谢斑竹.

[ Last edited by zhaoxf on 2007-1-5 at 11:36 AM ]
第4楼 zhaoxf 发表于 2007-01-05 10:59
初级用户 发帖 7 积分 118
**BEGIN和**END 在原文件都有.
第5楼 zhaoxf 发表于 2007-01-05 11:02
初级用户 发帖 7 积分 118
付上我写的bat文件,可是有个很严重的问题,就是只能产生FILE1/FILE2/FILE3等文件,可是里面没有内容:

for /f "tokens=1, 2, 3, 4 delims=** " %%j in (test.txt) do (
if "%%j" == "BEGIN" ( >> "%%k" echo
)
)
第6楼 zhaoxf 发表于 2007-01-05 11:05
初级用户 发帖 7 积分 118
付上原文件和我写的BAT:

附件
test.zip (397 bytes)
第7楼 无奈何 发表于 2007-01-05 11:54
荣誉版主 发帖 356 积分 1,338
这样试试:
第8楼 qzwqzw 发表于 2007-01-05 12:29
银牌会员 发帖 636 积分 2,343
第9楼 tigerpower 发表于 2007-01-05 13:18
中级用户 发帖 99 积分 377
如文件名形如 !FILE1! ,!FILE2!,!FILE3!,则7楼代码需要打补丁:)
第10楼 zhaoxf 发表于 2007-01-05 20:53
初级用户 发帖 7 积分 118
感谢各位热心高人的指点。
感谢"无奈何"的源码提供。跑出来的结果完全成功!

感谢中国DOS联盟提供这样的热情论坛!
第11楼 9527 发表于 2007-01-05 23:00
银牌会员 发帖 438 积分 1,185 来自 北京
顺便提供另外一种方法,纯属灌水
第12楼 jmz573515 发表于 2007-01-05 23:56
银牌会员 发帖 464 积分 1,212
我也来灌水
第13楼 ccwan 发表于 2007-01-06 00:56
金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊
作为对无奈何、9527、jmz573515三人灌水的惩罚,每人加5分。
第14楼 vkill 发表于 2007-01-06 01:50
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
sed 解决还是不错的
第15楼 lycai007 发表于 2007-05-02 15:22
新手上路 发帖 1 积分 2
如何从一个文本文件拆分为多个文本文件?
给可以发个例子和。BAT文件给我,谢谢了,ljchenghui@163.com
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023