![]() |
中国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 |