标题: 如何将一个文本文件拆分为多个文本文件?(完结)
[打印本页]
作者: worldopener
时间: 2008-4-24 11:27
标题: 如何将一个文本文件拆分为多个文本文件?(完结)
例如有这样一个文本文件:
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 ]
作者: terse
时间: 2008-4-24 11:49
@echo off&setlocal enabledelayedexpansion
for /f "delims=;" %%i in (a.txt) do set/a n+=1&>!n!.txt echo.%%i
pause
作者: worldopener
时间: 2008-4-24 13:00
set/a n+=1&>!n!.txt 这句看不懂
作者: pooronce
时间: 2008-4-24 13:05
set/a n+=1
for每读一行就n+1
>!n!.txt echo.%%i
等同 echo.%%i>!n!.txt
!n!是扩展延迟下的%n%
&只是连接两个命令的,放一行里以便省去for的括号
作者: worldopener
时间: 2008-4-24 13:44
明白,清楚了,谢谢两位的帮助,感激不尽!!!
作者: worldopener
时间: 2008-4-24 14:03
还想请教一下
假如将文本文件改成这样:
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
又该如何编写代码呢?
作者: slore
时间: 2008-4-24 16:11
要求一变再变……最好一次问清楚,改的很麻烦的。
给你通用版.
@echo off&setlocal enabledelayedexpansion
::初始化
Set n=0
Set i=1
::设置划分行数
Set k=2
::输出
for /f "delims=;" %%j in (a.txt) do (
if !n! NEQ %k% (Set /a n+=1) else (Set n=1&Set /a i+=1)
echo.%%j>>!i!.txt
)
echo 处理完毕!任意键退出……
pause>nul
作者: terse
时间: 2008-4-24 16:24
@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
作者: worldopener
时间: 2008-4-24 16:57
十分感谢!!