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

[文件操作] 【已解决】BAT:如何批量删除文件夹内特定的文本

[复制链接]
发表于 2015-11-2 22:48:38 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2015-11-6 23:04 编辑

有若干文件夹,每个文件夹内有一批txt文本,文本名称如下
wj1苏州-64值-记录期
wj3苏州-114值-记录期
wj12苏州-86值-记录期
...
现在欲删除文本名称中“值”字前面为3位数的文本(比如上列中的 wj3苏州-114值-记录期),也即倒数第9个字符是"_"的文本。这样的代码如何写?
发表于 2015-11-3 08:29:17 | 显示全部楼层
学习正则表达式和awk用不了多少时间的。

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

发表于 2015-11-3 09:07:34 | 显示全部楼层
  1. for /f "delims=" %%i in ('dir /b /s /a-d *.txt^|findstr /i "\-[0-9][0-9][0-9]值\-记录期\.txt$"') do del "%%i"
  2. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
思想之翼 + 1 感谢
依山居 + 1 1

查看全部评分

发表于 2015-11-3 09:23:22 | 显示全部楼层
  1. @echo off

  2. :: 现在欲删除文本名称中“值”字前面为3位数的文本(比如上列中的 wj3苏州-114值-记录期),也即倒数第9个字符是"_"的文本。这样的代码如何写?
  3. :: http://www.bathome.net/thread-37925-1-1.html

  4. :: everything 的命令行工具es 搜索文件很好用。
  5. :: http://www.bathome.net/thread-37744-1-1.html

  6. ::生成测试用的空文件
  7. echo;>wj1苏州-64值-记录期.txt
  8. echo;>wj3苏州-114值-记录期.txt
  9. echo;>wj12苏州-86值-记录期.txt



  10. echo es 搜索文件用法,开启正则的时候\是转义符,所是双斜杠\\
  11. es -r "D:\\temp\\stringtie\\.*-[0-9]{3}值-记录期\.txt"

  12. echo ==============
  13. echo.
  14. echo 可以只搜索文件名,可以搜索到硬盘上文件名匹配的文件
  15. es -r ".*-[0-9]{3}值-记录期\.txt$


  16. echo ==============
  17. echo.
  18. echo 以下是放在for 中执行

  19. for /f "tokens=*" %%a in ('es -r  "D:\\temp\\stringtie\\.*-[0-9]{3}值-记录期\.txt"') do (
  20.         echo 要删除%%a
  21.         echo del %%a 只是测试用,自行修改删除命令
  22.         )

  23. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 09:59 , Processed in 0.020364 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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