中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 10:13
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » 如何比较两TXT中的内容 ,并去叫其中一个的相同内容
可打印版本  1,090 / 7
第1楼 hy433124shc 发表于 2007-03-25 11:49
中级用户 发帖 75 积分 201
如何比较两TXT中的内容 ,并去叫其中一个的相同内容

1.TXT 中有 FIND 的结果
[7458] c:\my\123.mp3
[7456] c:\my\12345.mp3
2.txt 中有
[7458] c:\my\123.mp3

现我想得到1.TXT 内容为
[7456] c:\my\12345.mp3
第2楼 vkill 发表于 2007-03-25 12:32
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
搜索 "重复“
第3楼 lxmxn 发表于 2007-03-26 08:06
版主 发帖 4,938 积分 11,386
第4楼 xtyga 发表于 2007-03-27 13:58
初级用户 发帖 13 积分 23
又学到东东了
第5楼 hzzlh 发表于 2007-03-28 11:17
新手上路 发帖 7 积分 13
也有一个类似的问题,三楼的只是把 c:\my\12345.mp3 当作字符串在1.txt中寻找吧, 如果2.txt 中有多行呢 ?
比如:
1.TXT 中有 FIND 的结果
c:\my\123.mp3
c:\my\12345.mp3
c:\my\12.mp3
c:\my\1.mp3
2.txt 中有
c:\my\123.mp3
c:\my\12345.mp3
c:\my\12.mp3
c:\my\123456.mp3
想得到一个3.txt,里边是
c:\my\1.mp3
c:\my\123456.mp3

该怎么实现呢?
高手指教。。。。


又:
翻了以前的一些帖子,其中有个删除相同行的,个人感觉很好,可是怎么也想不出该怎样用在这里,代码如下:

@echo off
echo 正在查找文本相同行,请等待.....
(echo 清除重复行后的文件内容:& echo.)>str_.txt

setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
if not defined %%i set %%i=A & echo %%i>>str_.txt)

echo 清理完毕,清理后的文件保存在:str_.txt
pause>nul

[ Last edited by hzzlh on 2007-3-27 at 10:24 PM ]
第6楼 9527 发表于 2007-03-29 00:22
银牌会员 发帖 438 积分 1,185 来自 北京
确实是这样,FINDSTR处理这样的效果确实不太理想,先给你个暂时的方案吧,试试下面的代码

第7楼 hzzlh 发表于 2007-03-29 05:35
新手上路 发帖 7 积分 13
谢谢9527,经测试,可以解决这个问题。
只是这句不太明白

in ('^(more^<1.txt^&more^<2.txt^)^|sort')

查了一下 sort ,应该是排序吧,那么这句话是什么意思呢?

可不可以解释一下呢。。。

再次感谢!!!
第8楼 hzzlh 发表于 2007-03-29 10:41
新手上路 发帖 7 积分 13
自己也尝试着写了一个,代码如下:

echo 重的:>1.txt
echo 非重:>2.txt
for /f %%i in (test1.txt) do call:find &&i
pause

:find
set %%i=%1
for /f %%j in (test2.txt) do(
if findstr %1 echo %1>>1.txt else echo %%j>>2.txt
)

可是总是报错,不知哪里错了呢?
D:\bat>new

D:\bat>echo 重的: 1>1.txt

D:\bat>echo 非重: 1>2.txt

D:\bat>for /F %i in (test1.txt) do call:find && i

D:\bat>call:find && i

D:\bat>set %i=
此时不应有 do(。

D:\bat>for /f %j in (test2.txt) do(

D:\bat>


想不通啊。。。。。。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023