Board logo

标题: 合并文件和拆分文件[已结] [打印本页]

作者: Mxark     时间: 2007-4-8 03:42    标题: 合并文件和拆分文件[已结]

假设我有两个文件,类型为txt。都在D盘下
a.txt:

u u? 吚u*VVV癔q癔?????33333岴PVVVu ? 吚u9uvFu | 嬈^]? 烫烫虌U嬱u ?膼   j hA  u||瑨€|7梹|N檧|?€|€|?唡?亅)祤|?€|瓬€|Y█|G悅||<鎬|⑹亅鹟亅I獉|J亅綑€|
鄝|w泙|]檧|?亅#█|9]
....


b.txt:
空一行
$h*5)
dk&%A6526a5+65aDSAO
AS&89789%;DWE
329UR7AYYZ&^%A78y
....



问题:
怎么把b.txt的内容追加到a.txt最后(两个文本之间空一行)命名为c.txt
又怎么把b.txt的内容从c.txt分离出来命名为d.txt

[ Last edited by Mxark on 2007-4-8 at 09:41 AM ]
作者: flyinspace     时间: 2007-4-8 06:05
我晕.你把批处理当什么了.

又是追加又是拆分的..

直接用c++搞定得了。

追加还可以用copy /b参数搞定.

拆分嘛.自己用c++写吧.

批处理写不出来。
写出来也不能应付所有的情况。(不如不写)
作者: kcdsw     时间: 2007-4-8 07:57
我晕  复制b 到 d 行不行啊

追加  copy file1+file2 file3
作者: zh159     时间: 2007-4-8 09:17
批处理已凌驾于c++之上......
作者: bjsh     时间: 2007-4-8 10:32
这里的批处理是无所无不能的;

记得前几天的经典语句?

我要回火星;批处理咋写??
作者: lxmxn     时间: 2007-4-8 14:28

试试看??
@echo off
copy a.txt a.bak >nul
copy b.txt b.bak >nul
copy /y /b a.txt+b.txt c.txt >nul
del a.txt b.txt
start c.txt
set/p choose=是否拆分文件[Y]/[N]
if /i not "%choose%"=="y" exit/b
for /f "delims=: tokens=1*" %%a in ('findstr /n .* c.txt^|more') do (
        if "%%b"=="" set lxmxn=batchinger
        if not defined lxmxn (echo/%%b>>a.txt) else (echo/%%b>>b.txt)
)
start a.txt
start b.txt
pause

作者: Mxark     时间: 2007-4-8 22:22
谢谢拉lxmxn
我的权限只能加1分
OK
搞定
作者: flyinspace     时间: 2007-4-9 22:20
呵呵,可以应付在a.txt 和 b.txt  文件里没有空行的情况了。

如果a.txt里面有个空行的话。。。

分离就会出错。。

而文件千奇百怪。
这样是否有问题呢????

最少一个空行是一个文本文件里很正常的现象。
作者: flyinspace     时间: 2007-4-9 22:24
if "%%b"=="" set lxmxn=batchinger
        if not defined lxmxn (echo/%%b>>a.txt) else (echo/%%b>>b.txt)

根据这个条件做出的判断。