找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20858|回复: 10

[文件操作] 求助批处理:批量删掉前面相对名更短的相似名url文件

[复制链接]
发表于 2023-1-30 14:53:43 | 显示全部楼层 |阅读模式
本帖最后由 youxianwei 于 2023-1-30 19:58 编辑

大神求助子件并冗:批量删掉前面相对名更短的相似名url文件,只保留因为后缀ok而名更长的url文件

百度一下,你就知道.url             ✖要删除
百度一下,你就知道ok.url
腾讯视频.url                虽然没有ok结尾但不要被误会删除!!!
谷歌搜索.url           ✖要删除
谷歌搜索ok.url
爱奇艺视频.url                虽然没有ok结尾但不要被误会删除!!!
。。。。。。
发表于 2023-1-30 15:23:13 | 显示全部楼层
本帖最后由 HOPE2021 于 2023-1-30 15:25 编辑

回复 1# youxianwei
您看看这样可不可以
  1. @Echo Off & @Goto :Main

  2. :Main

  3.         For /F "Delims=" %%_ in ('Dir /B *.url') Do (
  4.                 Echo.%%_ | FindStr /I ".ok\.url" || Del "%%_"
  5.         )

  6. @Exit /B 0
复制代码
或者这样:
  1. @Echo Off & @Goto :Main

  2. :Main

  3.         For /F "Delims=" %%_ in ('Dir /B *.url') Do (
  4.                 If Exist "%%~n_ok.url" Del "%%_"
  5.         )

  6. @Exit /B 0
复制代码
 楼主| 发表于 2023-1-30 17:18:18 | 显示全部楼层
回复 2# HOPE2021


    测试成功!谢谢~感谢!
发表于 2023-1-30 18:51:30 | 显示全部楼层
可用 findstr 的反向匹配功能简化代码

  1. @echo off
  2. for /f "delims=" %%F in ('dir/b *.url^|findstr /vric:".*ok\.url$" ') do (del/q "%%~F")
复制代码
 楼主| 发表于 2023-1-30 19:52:56 | 显示全部楼层
本帖最后由 youxianwei 于 2023-1-30 20:03 编辑

回复 2# HOPE2021


您好,还有疑问,就是有些没有ok结尾的无相似重复名的文件也会被误会强制删除?想保留怎么办?
1.url        该删
1ok.url  
2.url         该删
2ok.url
3.url     会被勿删
4.url       会被勿删
。。。
发表于 2023-1-30 19:59:34 | 显示全部楼层
回复 5# youxianwei
请您试试看二楼的第二段代码
 楼主| 发表于 2023-1-30 20:14:47 | 显示全部楼层
回复 6# HOPE2021


    ok【子件去冗】能正常运行,是我自己加了个/s想搞【子孙件去冗】出现了不对的情况。。。。
发表于 2023-1-31 08:31:18 | 显示全部楼层
回复 7# youxianwei
这样可以吗?
  1. @Echo Off & @Goto :Main

  2. :Main

  3.         For /F "Delims=" %%_ in ('Dir /B /S *.url') Do (
  4.                 If Exist "%%~dpn_ok.url" Del "%%_"
  5.         )

  6. @Exit /B 0
复制代码
 楼主| 发表于 2023-1-31 10:47:17 | 显示全部楼层
本帖最后由 youxianwei 于 2023-1-31 11:27 编辑

回复 8# HOPE2021
感谢回答,还是只能处理夹内重复的url,无法处理夹间重复的url。
假设有两个文件夹,一个旧夹,一个新夹,新夹比旧夹有更新也有重复,旧夹名已后缀ok的文件如果在新夹中重复的url希望清理掉,那新夹中剩下的就是完全不同于旧夹中的最新url。


【旧夹】
---1.url        会删
---1ok.url  
---2.url         会删
---2ok.url
---3.url         不会被勿删
---4.url        不会被勿删
【新夹】
---1.url            【与旧夹重复想要删却不会被删】!!!
---2.url            【与旧夹重复想要删却不会被删】!!!
---a.url         会删
---aok.url      

不过我想了想,放在同一个文件夹里清理后,按最新修改时间区分也是能分辨出哪些是全新的url的。
发表于 2023-1-31 11:19:26 | 显示全部楼层
回复 9# youxianwei
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /s /b /a-d *ok.url') do (
  4.     set str=%%~nxa
  5.     set str=!str:ok.url=.url!
  6.     set _!str!=true
  7. )
  8. for /f "delims=" %%i in ('dir /s /b /a-d *.url') do (
  9.     if defined _%%~nxi (
  10.         del "%%i"
  11.     )
  12. )
复制代码
 楼主| 发表于 2023-1-31 19:26:47 | 显示全部楼层
回复 10# qixiaobin0715


    成功,谢谢感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:16 , Processed in 0.069192 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表