中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 07:12
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何将一个文本文件拆分为多个文本文件?(完结)
可打印版本  885 / 8
第1楼 worldopener 发表于 2008-04-24 11:27
初级用户 发帖 20 积分 44
如何将一个文本文件拆分为多个文本文件?(完结)
例如有这样一个文本文件:
one;
two;
three;
four;
five;
six;
seven;
eight;
nine;
ten;

如何将这个文本文件的每一行输出成一个新文件,有多少行就有多少个文件?
如:
1.txt:
one

2.txt:
two
.
.
.
.
10.txt:
ten

[ Last edited by worldopener on 2008-4-24 at 05:11 PM ]
第2楼 terse 发表于 2008-04-24 11:49
银牌会员 发帖 946 积分 2,404
@echo off&setlocal enabledelayedexpansion
for /f "delims=;" %%i in (a.txt) do set/a n+=1&>!n!.txt echo.%%i
pause
第3楼 worldopener 发表于 2008-04-24 13:00
初级用户 发帖 20 积分 44
set/a n+=1&>!n!.txt 这句看不懂
第4楼 pooronce 发表于 2008-04-24 13:05
中级用户 发帖 250 积分 484
set/a n+=1
for每读一行就n+1

>!n!.txt echo.%%i
等同 echo.%%i>!n!.txt
!n!是扩展延迟下的%n%

&只是连接两个命令的,放一行里以便省去for的括号
第5楼 worldopener 发表于 2008-04-24 13:44
初级用户 发帖 20 积分 44
明白,清楚了,谢谢两位的帮助,感激不尽!!!
第6楼 worldopener 发表于 2008-04-24 14:03
初级用户 发帖 20 积分 44
还想请教一下
假如将文本文件改成这样:
one
one;
two
two;
three
three;
four
four;
five
five;
six
six;
seven
seven;
eight
eight;
nine
nine;
ten
ten;

要想将这个文件分割成这样:
1.txt:
one
one

2.txt:
two
two

3.txt:
three
three
.
.
.
.
10.txt:
ten
ten

又该如何编写代码呢?
第7楼 slore 发表于 2008-04-24 16:11
铂金会员 发帖 2,478 积分 5,212
要求一变再变……最好一次问清楚,改的很麻烦的。
给你通用版.


第8楼 terse 发表于 2008-04-24 16:24
银牌会员 发帖 946 积分 2,404
@echo off&setlocal enabledelayedexpansion
for /f "delims=;" %%i in (a.txt) do (
set/a n+=1
if not defined %%i (>!n!.txt echo.%%i&set %%i=!n!) else >>!%%i!.txt echo.%%i&set/a n-=1
)
pause
第9楼 worldopener 发表于 2008-04-24 16:57
初级用户 发帖 20 积分 44
十分感谢!!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023