Board logo

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

作者: youxianwei    时间: 2023-1-30 14:53     标题: 求助批处理:批量删掉前面相对名更短的相似名url文件

本帖最后由 youxianwei 于 2023-1-30 19:58 编辑

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

百度一下,你就知道.url             ✖要删除
百度一下,你就知道ok.url
腾讯视频.url                虽然没有ok结尾但不要被误会删除!!!
谷歌搜索.url           ✖要删除
谷歌搜索ok.url
爱奇艺视频.url                虽然没有ok结尾但不要被误会删除!!!
。。。。。。
作者: HOPE2021    时间: 2023-1-30 15:23

本帖最后由 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
复制代码

作者: youxianwei    时间: 2023-1-30 17:18

回复 2# HOPE2021


    测试成功!谢谢~感谢!
作者: aloha20200628    时间: 2023-1-30 18:51

可用 findstr 的反向匹配功能简化代码
  1. @echo off
  2. for /f "delims=" %%F in ('dir/b *.url^|findstr /vric:".*ok\.url$" ') do (del/q "%%~F")
复制代码

作者: youxianwei    时间: 2023-1-30 19:52

本帖最后由 youxianwei 于 2023-1-30 20:03 编辑

回复 2# HOPE2021


您好,还有疑问,就是有些没有ok结尾的无相似重复名的文件也会被误会强制删除?想保留怎么办?
1.url        该删
1ok.url  
2.url         该删
2ok.url
3.url     会被勿删
4.url       会被勿删
。。。
作者: HOPE2021    时间: 2023-1-30 19:59

回复 5# youxianwei
请您试试看二楼的第二段代码
作者: youxianwei    时间: 2023-1-30 20:14

回复 6# HOPE2021


    ok【子件去冗】能正常运行,是我自己加了个/s想搞【子孙件去冗】出现了不对的情况。。。。
作者: HOPE2021    时间: 2023-1-31 08:31

回复 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
复制代码

作者: youxianwei    时间: 2023-1-31 10:47

本帖最后由 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的。
作者: qixiaobin0715    时间: 2023-1-31 11:19

回复 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. )
复制代码

作者: youxianwei    时间: 2023-1-31 19:26

回复 10# qixiaobin0715


    成功,谢谢感谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2