Board logo

标题: 如何拆分和合并 [打印本页]

作者: flyingphf     时间: 2008-3-27 18:54    标题: 如何拆分和合并

比如说有个1.txt文件,内容如下
aaa
bbb
ccc
现在把他按行拆分变为
2.txt内容为aaa,3.txt内容为bbb,4.txt内容为ccc,这是一个问题,如果能拆分又怎么把他合并为5.txt内容为
ccc
bbb
aaa
谢谢
作者: bat-zw     时间: 2008-3-27 19:28    标题: 方法比较笨但可以实现:

还是用set /p a=<1.txt
cd . >a.txt
for /f "tokens=*" %%b in (1.txt) do call :get %%b
for /f "tokens=1" %%c in (a.txt) do echo %%c >2.txt
for /f "tokens=2" %%c in (a.txt) do echo %%c >3.txt
for /f "tokens=3" %%c in (a.txt) do echo %%c >4.txt
for /f "tokens=1" %%d in (4.txt) do echo %%d >5.txt
for /f "tokens=1" %%e in (3.txt) do echo %%e >>5.txt
for /f "tokens=1" %%f in (2.txt) do echo %%f >>5.txt
del a.txt
goto :eof
:get
set /p a=<a.txt
echo %a%%1 >a.txt&goto :eof
[ Last edited by zw19750516 on 2008-3-27 at 07:30 PM ]
作者: abcd     时间: 2008-3-27 19:50

@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* 1.txt') do (
   set /a num=%%i+1
   echo %%j>"!num!.txt"
)
pause

作者: abcd     时间: 2008-3-27 19:52
合并
@echo of
copy 2.txt+3.txt+4.txt 5.txt
pause

作者: bat-zw     时间: 2008-3-27 20:50
我怎么忘记copy了,受教了abcd
作者: bat-zw     时间: 2008-3-27 21:59    标题: 还是可以利用call代替变量延迟:


@echo off
set n=1
for /f "tokens=*" %%i in (1.txt) do call :change %%i
copy 4.txt+3.txt+2.txt 5.txt
goto :eof
:change
set /a n+=1
echo %1 >%n%.txt&goto :eof
[ Last edited by zw19750516 on 2008-3-27 at 10:03 PM ]