中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 11:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助!两个文本比较 查看 2,293 回复 13
楼 主 求助!两个文本比较 发表于 2011-01-05 15:33 ·  中国 安徽 宿州 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
现有两个文本a和b,内容如下
a.txt:
VCA486F2092
VCA486F2092
VCA486F2092b
VCA486F2092
VCA52142035
b.txt:
VCA48679115
VCA486F2092
VCA52142035
VCA52171114
现在我的目的是比较a和b,将b中有的而a中没有的输出保存在一个新的txt的文档内,比如VCA48679115,VCA52171114写入新的文本里

请高手帮忙
2 发表于 2011-01-05 15:42 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
findstr /v /r /x /g:a.txt b.txt>c.txt


[ Last edited by Hanyeguxing on 2011-1-8 at 14:44 ]
3 发表于 2011-01-06 15:16 ·  中国 安徽 宿州 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
谢谢寒夜兄!太感谢了, 但是你所说的方法只能将相同的找出来,我要的是不同的

[ Last edited by xyz1234111 on 2011-1-6 at 17:15 ]
4 发表于 2011-01-08 14:20 ·  中国 安徽 宿州 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
还有人么,来看看吧,不然就沉了..
5 发表于 2011-01-08 14:45 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
/v参数就是用来比较不同的,把/v去了才是比较相同
6 发表于 2011-01-09 07:59 ·  中国 广东 电信
初级用户
积分 86
发帖 45
注册 2007-07-26 17:35
19年会员
UID 94082
性别 男
状态 离线
不用外部命令
for /f "delims=" %%i in (a.txt) do set "%%i=OK"
for /f "delims=" %%i in (b.txt) do if not defined %%i echo %%i>>c.txt
手机党,没测试
7 发表于 2011-01-11 09:04 ·  中国 广东 深圳 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
RE:寒夜兄
你说的方法我测试过,还是达不到要求啊
RE:6楼
兄的方法好像只能比较第一行的
请你们在帮忙看看
8 发表于 2011-01-11 10:32 ·  IANA 局域网IP(Private-Use)
新手上路
积分 1
发帖 1
注册 2011-01-08 11:18
15年会员
UID 180485
性别 男
状态 离线
findstr /v /r /x /g:a.txt b.txt>c.txt

確實可以做到
9 发表于 2011-01-11 18:01 ·  中国 安徽 宿州 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
不好意思,上次测试失败了,但是这次测试又成功了,谢谢寒夜兄,太不好意思了
寒夜兄,能不能再请教个问题,
我有一堆TXT文档,在同一文件夹内,每个最大不超过1M,我想把这些TXT文档合并成每12M或者12M以下的文档,要求是不能有重复的合并的,随机合并就好了,请问能有办法实现吗?

[ Last edited by xyz1234111 on 2011-1-11 at 18:17 ]
10 发表于 2011-01-11 18:33 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
1,什么是不重复的标准?文件名?文本里的内容?
2,超过12M就新建一个文件?
3,txt的编码是什么?
4,不包括子目录?
11 发表于 2011-01-11 19:42 ·  中国 广东 深圳 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
就随机合并,文件名不重复,超过12M新建一个文件,TXT编码就是正常的编码,一般时候没有子目录,不过能够加上一个判断是否要子目录的就更好了,子目录里可能有重名文件
12 发表于 2011-01-11 21:10 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off&setlocal enableDelayedExpansion
set/a a=1024*1024*12,b=1
set "c=输出路径"
for /r "源文件所在路径" %%a in (*.txt) do (
for %%b in ("%c%\!b!.txt") do set/a d=%%~zb+%%~za
if !d! gtr %a% set/a b+=1
type "%%~fa">>"%c%\!b!.txt"
)


[ Last edited by Hanyeguxing on 2011-1-11 at 21:11 ]
13 发表于 2011-01-13 15:25 ·  中国 安徽 宿州 电信
初级用户
积分 32
发帖 32
注册 2010-10-29 05:31
15年会员
UID 176702
性别 男
状态 离线
寒夜兄:
首先感谢你的回帖!
楼上的代码我测试过了,如果源文件一直存在的话这个代码会一直循环下去,比如说源文件里有每个大小为1.2M的TXT文件
1.txt
2.txt
.
.
100.txt
我需要的是任意10个文件合并一次,这10个合并过的源文件不参加下次的合并,这样就是我上面说的不重复合并了,能不能将已经复制过的文件排除呢?可以将源文件删除的

[ Last edited by xyz1234111 on 2011-1-13 at 15:31 ]
14 发表于 2011-01-15 13:57 ·  中国 湖北 武汉 电信
初级用户
beginner
积分 26
发帖 27
注册 2011-01-13 23:44
15年会员
UID 180774
性别 男
状态 离线
感谢楼上各位,新人学习了。
论坛跳转: