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

[文件操作] BAT脚本批量删除文件名中含相同字符串的文件

1、文件名前24个字符串是自动加的时间撮2、因为网络问题,时间撮会重复加,并生成多个文件
3、示例文件名称中,第二和第三个文件是需要删除的
4、该类文件存在于目录下的多个下级目录中

文件名示例:
2022年07月24日11点41分16_234_鲁公2023年 KPl.xlsx
2022年07月24日11点41分16_234_2022年07月24日11点41分16_234_鲁公2023年 KPl.xlsx
2022年07月24日11点41分16_234_2022年07月24日11点41分16_234_2022年07月24日11点41分16_234_鲁公2023年 KPl.xlsx


求助大神帮助

备份好源文件,批处理放在要处理的文件目录下,慎用:
  1. del /s /q *_*_*_*_*.xls
复制代码
1

评分人数

TOP

回复 1# lnvi_li
  1. @echo off
  2. cd /d "%~dp0"
  3. del /f /q /s *年*月*日*点*分*_*年*月*日*点*分*
  4. pause
复制代码
1

评分人数

测试代码之前请做好备份

TOP

本帖最后由 hfxiang 于 2023-11-18 06:42 编辑

回复 1# lnvi_li
可借用第3方工具gawk(http://bcn.bathome.net/tool/5.1.0/gawk.exe)辅助处理,实现方式如下:
  1. @echo off
  2. cd /d "%~dp0"
  3. dir *.xlsx /s/a-d/b|gawk "BEGIN{FS=OFS=\"\134\"}{split($NF,t,/_[0-9]+_/,m);f=t[1];for(i=2;i in t;i++)if(t[i]!=t[1])f=f m[i-1] t[i];if(f in c){if(!($0 in a))printf(\"@del \042\045s\042\n\",$0)}else{c[f];if($NF!=f){s=$0;$NF=f;printf(\"@move \057Y \042\045s\042 \042\045s\042\n\",s,$0);a[$0]}}}"|cmd.exe
复制代码
1

评分人数

TOP

返回列表