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

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

本帖最后由 思想之翼 于 2015-11-6 23:04 编辑

有若干文件夹,每个文件夹内有一批txt文本,文本名称如下
wj1苏州-64值-记录期
wj3苏州-114值-记录期
wj12苏州-86值-记录期
...
现在欲删除文本名称中“值”字前面为3位数的文本(比如上列中的 wj3苏州-114值-记录期),也即倒数第9个字符是"_"的文本。这样的代码如何写?

  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

评分人数

TOP

  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

评分人数

TOP

学习正则表达式和awk用不了多少时间的。
1

评分人数

TOP

返回列表