中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 21:34
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何对两个文本文件的内容进行对换? 查看 1,030 回复 8
楼 主 如何对两个文本文件的内容进行对换? 发表于 2007-03-22 23:39 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 18
发帖 7
注册 2007-03-21 00:14
19年会员
UID 82389
性别 男
状态 离线
有两个文本文件(a.txt,b.txt),想把a.txt里面的内容用b.txt的内容替代,不知用批处理命令该如何实现?
eg:文本文件a.txt的内容(随机产生的)为:IWB002|20060720100500|E010962|085|110|37512|37512|0|0|0|||||||||||0|0|0|0|0|0|0|0|0|0|||||0|20060720|101028||,
文本文件b.txt的内容(给定的):This file shows status if processing is normally completed;现在要实现的结果就是将a.txt的内容变成:This file shows status if processing is normally completed
备注:文本文件a.txt文件名a也是随机产生的,文本文件b.txt的文件名是给定的
2 发表于 2007-03-22 23:53 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
说得太难理解了。
若要用b.txt覆盖a.txt,用type b.txt>a.txt或是more b.txt>a.txt或是findstr .* b.txt>a.txt都行。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2007-03-22 23:56 ·  中国 福建 福州 电信
初级用户
积分 53
发帖 23
注册 2007-02-02 23:27
19年会员
UID 78449
性别 男
状态 离线
可以做先生成个中间文件,然后进行对换。比如,有三个文件,a.txt b.txt c.txt
其中c.txt为空内容,那么现在可以将a.txt内容复制到c.txt,再将b.txt内容复制到a.txt,最后将c.txt复制到b.txt.完成要求
4 发表于 2007-03-23 00:10 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 18
发帖 7
注册 2007-03-21 00:14
19年会员
UID 82389
性别 男
状态 离线
但是文本文件a.txt文件名不是确定的,是随机产生的,而这命令type b.txt > a.txt中要求文件名a是给定的.
再解释一下我做这个操作的原因,机台每天都会产生.txt的文件文件,而且文件名又是随机给的,我想把生成的这些文本文件的内容都用“This file shows status if processing is normally completed ”代替,可不知该如何实现。
5 发表于 2007-03-23 00:16 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
这不就是要用b.txt文件内容替换所有txt文件的内容吗?
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
6 发表于 2007-03-23 00:24 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 18
发帖 7
注册 2007-03-21 00:14
19年会员
UID 82389
性别 男
状态 离线
应该是这样的,但是不能改变文本文件a.txt的文件名a,只能替换内容。

[ Last edited by fuhaiquan on 2007-3-22 at 11:28 AM ]
7 发表于 2007-03-23 00:32 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
@echo off
for /f "delims=" %%i in ('dir/b *.txt') do if not "%%i"=="b.txt" more b.txt>"%%i"
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
8 发表于 2007-03-23 01:13 ·  中国 新疆 乌鲁木齐 电信
高级用户
★★★
Autowalk
积分 845
发帖 375
注册 2007-03-03 01:58
19年会员
UID 80606
性别 男
状态 离线
把B 命名为 A ,直接覆盖,在把名字改成B
9 发表于 2007-03-23 02:56 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 18
发帖 7
注册 2007-03-21 00:14
19年会员
UID 82389
性别 男
状态 离线
谢谢,已经解决OK。
论坛跳转: