![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 18:27 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎么去除TXT文件中重复的行 |
| 可打印版本 7,800 / 22 |
| 第16楼 a9319751 | 发表于 2006-09-13 23:58 |
| 中级用户 发帖 170 积分 439 | |
Originally posted by willsort at 2006-9-13 23:25: willsort斑竹这么客气啊 |
|
| 第17楼 vkill | 发表于 2006-09-14 00:20 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by namejm at 2006-9-13 12:01: |
|
| 第18楼 redtek | 发表于 2006-09-26 07:28 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
俺觉得要是想挑出唯一的电子邮件地址,在数千个行里,每行一个邮件地址。
或是,要挑出数千行里必须唯一的电话号码, 那么,其实可以象开玩笑的这么玩好玩~:) 这个是要挑出唯一性的模拟内容,可以存成 Dat.txt 文件与上面方法一试:) 其实,谁让DOS建目录的时候不能建重名的目录名啊,哈哈…… 那规则既然被定好了,我们就利用DOS建目录不能重名, 所以,有重名的系统自然会提示说什么什么, 但是!!它是建不上一个重名的目录的,哈哈…… 所以,DIR加参数只列文件名,然后按照我建立目录的时间来排序, 当然就是具有唯一性了。 不好意思,这是个开玩笑的玩法,不能用在别的有用的地方,权当大家笑笑开开心~:) [ Last edited by redtek on 2006-9-26 at 07:31 ] |
|
| 第19楼 namejm | 发表于 2006-09-26 13:15 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
楼上的方法虽然巧妙,但是却有很大的局限性:
首先,文件名的长度有限制,在XP的NTFS格式的分区中,最长的路径不能超过256个字符,除掉盘符、冒号和斜杠,只剩下最多253个字符的长度能做文件名,所以,当某行的字符数超过253的时候,你的代码就会出错; 其次,文件名中不能再出现冒号及一些特殊字符,如果文本中正好出现这些字符的话,代码同样会出错;当然,前面的那些代码同样不能处理敏感字符,但是至少还是可以处理冒号的; 最后,你创建了那么多的文件夹,临时文件的数量够吓人的,呵呵,最后还要删除它,给人的感觉很不爽啊。 当然,你说过了,这个只是弄来玩玩的,我们也就当做是在做智力体操,拓展思维,博众人一笑吧^_^ [ Last edited by namejm on 2006-9-26 at 13:17 ] |
|
| 第20楼 redtek | 发表于 2006-09-26 20:24 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
多谢namejm指点,哈哈~:)
|
|
| 第21楼 a9319751 | 发表于 2006-12-22 08:09 |
| 中级用户 发帖 170 积分 439 | |
|
其实当初我想用这个处理QQ聊天的记录,中间可能有很多重复的,我想把多余的部分删掉,剩下按顺序排列
|
|
| 第22楼 jmz573515 | 发表于 2006-12-25 11:37 |
| 银牌会员 发帖 464 积分 1,212 | |
|
'功能:删除某个文件中内容相同的行,但保留内容相同的最上面的一行。
'弊端:效率太低。处理文件不要太大,请测试后使用。 '使用方法:将下面的内容复制到记事本另存为a.vbs之后把要处理的文件拖放到a.vbs上面即可。 [ Last edited by jmz573515 on 2006-12-26 at 09:44 AM ] |
|
| 第23楼 ldlcau | 发表于 2007-04-10 05:29 |
| 新手上路 发帖 4 积分 10 | |
|
@echo off
setlocal if (%1)==() goto end REM sort/r <%1 >tmp.txt 逆序 sort <%1 >tmp.txt set "a="&(set b=) type nul>sss.txt for /f "delims=" %%a in (tmp.txt) do call :hehe "%%a" del tmp.txt set "a="&(set b=) echo 完成 goto :eof :hehe set a=%b% set b=%~1 if not "%a%"=="%b%" echo %b% >>sss.txt goto :eof :end echo 对不起,参数错误!!! 请教下怎么按每行的字符数排列 |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |