![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-24 23:46 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]求如何判断每行相同的文本并删除它 |
| 可打印版本 988 / 11 |
| 第1楼 fjcase | 发表于 2007-04-05 11:59 |
| 初级用户 发帖 23 积分 53 | |
|
[求助]求如何判断每行相同的文本并删除它 例如有文件:
12345, 12345, 12346, 12456, ..... 能不能做个批处理判断该文件中的每行是否都相同,如果都相同,则运行某个程序,不同的话,就显示文件的内容. |
|
| 第2楼 bw070 | 发表于 2007-04-05 13:32 |
| 中级用户 发帖 137 积分 292 | |
|
似乎不太可能吧
学艺不精 只知道用 fc 1.txt 2.txt >3.txr 比较1.txt 和 2.txt 的不同 然后写到3.txt里 |
|
| 第3楼 digger | 发表于 2007-04-06 00:56 |
| 初级用户 发帖 29 积分 79 来自 湖南 | |
|
对文件内容排序,然后判断首尾两行是否相同既可.
|
|
| 第4楼 fjcase | 发表于 2007-04-06 05:59 |
| 初级用户 发帖 23 积分 53 | |
|
高手们帮帮忙吧.能不能不用系统以后的程序啊?直接用批处理解决
|
|
| 第5楼 flyinspace | 发表于 2007-04-06 06:11 |
| 银牌会员 发帖 517 积分 1,206 | |
|
@echo off & SetLocal EnableDelayedExpansion
set ReadFile=1.txt set OutFile=2.txt for /f "tokens=* " %%i in (%ReadFile%) do ( if not exist %OutFile% echo %%i>%OutFile% type 2.txt | find /i "%%i" if errorlevel 1 echo %%i >>%OutFile% ) pause |
|
| 第6楼 fjcase | 发表于 2007-04-07 02:17 |
| 初级用户 发帖 23 积分 53 | |
|
楼上的好像不能用的,什么都没实现
|
|
| 第7楼 dikex | 发表于 2007-04-07 02:35 |
| 高级用户 发帖 366 积分 788 | |
| 第8楼 wudixin96 | 发表于 2007-04-07 02:50 |
| 银牌会员 发帖 931 积分 1,928 | |
Originally posted by dikex at 2007-4-7 02:35 AM: 有没试过啊??for /f "delims=" %%i in (a.txt) do set aa=%%i执行完了才执行后面的句子的。 aa的值是a.txt的最后一行。 起码也得 [ Last edited by wudixin96 on 2007-4-7 at 02:55 AM ] |
|
| 第9楼 digger | 发表于 2007-04-07 03:23 |
| 初级用户 发帖 29 积分 79 来自 湖南 | |
| 第10楼 lililulula | 发表于 2007-04-07 04:40 |
| 中级用户 发帖 138 积分 302 | |
|
5楼的朋友的代码好象有点问题 比如:4567
456 456 55 这样的内容只要首行开始第n行的内容包括n行以后的内容,如上面的第1行4567,包含第2,3行的456,然后执行结果就会把被包含的数字内容全部删除 此例执行结果为:4567 55 两行456均被删除,原因不清楚 另外请教5楼 type 2.txt | find /i "%%i" 此2行的作用,其中打出2.txt的内容也就是要被处理的文件内容然后查找被处理的文件中的所有内容,是比较?这里有点迷糊,还希望解答 |
|
| 第11楼 dikex | 发表于 2007-04-07 08:58 |
| 高级用户 发帖 366 积分 788 | |
Originally posted by wudixin96 at 2007-4-6 01:50 PM: |
|
| 第12楼 flyinspace | 发表于 2007-04-07 09:59 |
| 银牌会员 发帖 517 积分 1,206 | |
Originally posted by lililulula at 2007-4-6 03:40 PM: 哦。。的确会这样。 那么就再加多一个for循环就搞定了。 另一个for循环判定是否绝对相等。。 原因是:4567包含了456。 另:因为批处理不支持汉字的拆分+加密工程。。 现在研究vbs中。。 暂时大家给我的短消息都不回了。 研究完vbs再搞这个。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |