中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 08:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】关于读取TXT文件,生成一个新的TXT文件的问题 查看 774 回复 6
楼 主 【求助】关于读取TXT文件,生成一个新的TXT文件的问题 发表于 2009-02-14 04:02 ·  中国 广东 东莞 电信
新手上路
积分 11
发帖 8
注册 2007-08-22 06:51
18年会员
UID 95562
性别 男
状态 离线
小生菜菜,近来整理文件实在头痛,想偷懒做个批处理或VBS来完成,看了相关文章,可惜才疏学浅,怎么都不大明白,实无办法上来求救!望能有点现成!

读取TXT文件,无分割标示的情况下,每50行生成一个新的TXT文件,其文件名最好以该文件的第一行的里面的字命名。
例如文件a.txt内容如下
11111111 aaaaaaa
22222222 bbbbb
..........
50000000 aaaaaaa1
.......
10000000 1112222
........
运行批处理后得到文件名为11111111.txt 50000000.txt 10000000.txt
2 发表于 2009-02-14 04:48 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
set n=0
for /f "tokens=1*" %%a in (a.txt) do (
call :sub %1 %2
)
goto :eof
:sub
if %n%==51 set fn=&set n=0
set/a n+=1
if not defined fn set fn=%1
echo %*>>%fn%.txt
goto :eof
精简
=> 个人网志
3 发表于 2009-02-14 05:41 ·  中国 广东 东莞 电信
新手上路
积分 11
发帖 8
注册 2007-08-22 06:51
18年会员
UID 95562
性别 男
状态 离线
非常感谢。。。试下先、!
4 发表于 2009-02-14 05:53 ·  中国 广东 东莞 电信
新手上路
积分 11
发帖 8
注册 2007-08-22 06:51
18年会员
UID 95562
性别 男
状态 离线
好像不行!!
5 发表于 2009-02-14 09:20 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
不好意思,这样可以了
echo off
set n=0
for /f "tokens=1*" %%a in (a.txt) do (
call :sub %%a %%b
)
pause
goto :eof
:sub
if %n%==51 set fn=&set n=0
set/a n+=1
if not defined fn set fn=%1
echo %*>>%fn%.txt
goto :eof
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2009-02-14 12:16
精简
=> 个人网志
6 发表于 2009-02-14 10:59 ·  中国 广东 东莞 电信
新手上路
积分 11
发帖 8
注册 2007-08-22 06:51
18年会员
UID 95562
性别 男
状态 离线
谢谢!!可以了。。因为是50行,所以
if %n%==50 set fn=&set n=0
7 Re 6楼 发表于 2009-02-14 12:21 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
如果有人帮你解决了问题,建议进行如下操作:

1、给正确回答问题者加分以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。

2、修改帖子标题,注明:
论坛跳转: