中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-19 06:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 合并文件和拆分文件[已结] 查看 893 回复 8
楼 主 合并文件和拆分文件[已结] 发表于 2007-04-08 03:42 ·  中国 湖南 永州 电信
初级用户
积分 64
发帖 30
注册 2007-03-26 06:39
UID 82946
性别 男
状态 离线
假设我有两个文件,类型为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 ]
2 发表于 2007-04-08 06:05 ·  中国 广东 广州 荔湾区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
我晕.你把批处理当什么了.

又是追加又是拆分的..

直接用c++搞定得了。

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

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

批处理写不出来。
写出来也不能应付所有的情况。(不如不写)
知,不觉多。不知,乃求知
3 发表于 2007-04-08 07:57 ·  中国 北京 鹏博士BGP
中级用户
★★
积分 404
发帖 179
注册 2006-03-30 14:44
UID 53056
状态 离线
我晕 复制b 到 d 行不行啊

追加 copy file1+file2 file3
4 发表于 2007-04-08 09:17 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
批处理已凌驾于c++之上......
5 发表于 2007-04-08 10:32 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
UID 75212
性别 男
状态 离线
这里的批处理是无所无不能的;

记得前几天的经典语句?

我要回火星;批处理咋写??
6 发表于 2007-04-08 14:28 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

试试看??

@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=是否拆分文件/
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

本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
Mxark +1 2007-04-08 22:21
baomaboy +4 2007-04-09 01:38
7 发表于 2007-04-08 22:22 ·  中国 湖南 永州 电信
初级用户
积分 64
发帖 30
注册 2007-03-26 06:39
UID 82946
性别 男
状态 离线
谢谢拉lxmxn
我的权限只能加1分
OK
搞定
8 发表于 2007-04-09 22:20 ·  中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
呵呵,可以应付在a.txt 和 b.txt 文件里没有空行的情况了。

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

分离就会出错。。

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

最少一个空行是一个文本文件里很正常的现象。
知,不觉多。不知,乃求知
9 发表于 2007-04-09 22:24 ·  中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
if "%%b"=="" set lxmxn=batchinger
if not defined lxmxn (echo/%%b>>a.txt) else (echo/%%b>>b.txt)

根据这个条件做出的判断。
知,不觉多。不知,乃求知
论坛跳转: