[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】请教批处理带参数的文本文档一键去重问题

本帖最后由 zhuan1688 于 2022-3-5 09:53 编辑

批处理之家帮我个人解决了很多的问题,在此向管理员和各位无私奉献的大神表示感谢!
新问题是,TXT文件里有一万行内容,每行的格式都是:网址/?id=数字,但是网址有大量重复的,这种带参数的怎么一键去重?
如:
http://www.1.com/?id=2
http://www.2.com/?id=9
http://www.3.com/?id=21
http://www.1.com/?id=28
http://www.4.com/?id=8
把 http://www.1.com/ 去重只保留一个
不知道能不能实现,请各位大神赐教,无比感激

回复 4# went


    感谢老师帮助,完美解决,祝您万事如意,结贴

TOP

回复 3# zhuan1688


    这样吗?
  1. @echo off & cd /d "%~dp0"
  2. set "file=1.txt"
  3. (
  4. for /f "usebackq delims=" %%i in ("%file%") do (
  5. if not defined %%~pi (
  6. echo %%i
  7. set "%%~pi=1"
  8. )
  9. )
  10. )>"%file%_NEW"
  11. move /y "%file%_NEW" "%file%"
  12. pause&exit
复制代码
1

评分人数

TOP

回复 2# went

感谢老师的指教,我是想保留参数,比如
http://www.1.com/?id=2
http://www.2.com/?id=9
http://www.3.com/?id=21
http://www.1.com/?id=28
http://www.4.com/?id=8
去重后是
http://www.1.com/?id=2
http://www.2.com/?id=9
http://www.3.com/?id=21
http://www.4.com/?id=8
而且网址格式很乱,有的带www,有的不带,有的是com有的是com.cn,有的是四级域名等等,不知道这样的能不能实现

TOP

test.bat
  1. @echo off & cd /d "%~dp0"
  2. set "file=1.txt"
  3. (
  4. for /f "usebackq tokens=1-4 delims=./" %%i in ("%file%") do (
  5. if not defined _%%k (
  6. echo %%i//%%j.%%k.%%l/
  7. set "_%%k=1"
  8. )
  9. )
  10. )>"%file%_NEW"
  11. move /y "%file%_NEW" "%file%"
  12. pause&exit
复制代码

TOP

返回列表