标题: [文件操作] 【已解决】BAT:如何批量删除文件夹内特定的文本 [打印本页]
作者: 思想之翼 时间: 2015-11-2 22:48 标题: 【已解决】BAT:如何批量删除文件夹内特定的文本
本帖最后由 思想之翼 于 2015-11-6 23:04 编辑
有若干文件夹,每个文件夹内有一批txt文本,文本名称如下
wj1苏州-64值-记录期
wj3苏州-114值-记录期
wj12苏州-86值-记录期
...
现在欲删除文本名称中“值”字前面为3位数的文本(比如上列中的 wj3苏州-114值-记录期),也即倒数第9个字符是"_"的文本。这样的代码如何写?
作者: 依山居 时间: 2015-11-3 08:29
学习正则表达式和awk用不了多少时间的。
作者: WHY 时间: 2015-11-3 09:07
- for /f "delims=" %%i in ('dir /b /s /a-d *.txt^|findstr /i "\-[0-9][0-9][0-9]值\-记录期\.txt$"') do del "%%i"
- pause
复制代码
作者: 依山居 时间: 2015-11-3 09:23
- @echo off
-
- :: 现在欲删除文本名称中“值”字前面为3位数的文本(比如上列中的 wj3苏州-114值-记录期),也即倒数第9个字符是"_"的文本。这样的代码如何写?
- :: http://www.bathome.net/thread-37925-1-1.html
-
- :: everything 的命令行工具es 搜索文件很好用。
- :: http://www.bathome.net/thread-37744-1-1.html
-
- ::生成测试用的空文件
- echo;>wj1苏州-64值-记录期.txt
- echo;>wj3苏州-114值-记录期.txt
- echo;>wj12苏州-86值-记录期.txt
-
-
-
- echo es 搜索文件用法,开启正则的时候\是转义符,所是双斜杠\\
- es -r "D:\\temp\\stringtie\\.*-[0-9]{3}值-记录期\.txt"
-
- echo ==============
- echo.
- echo 可以只搜索文件名,可以搜索到硬盘上文件名匹配的文件
- es -r ".*-[0-9]{3}值-记录期\.txt$
-
-
- echo ==============
- echo.
- echo 以下是放在for 中执行
-
- for /f "tokens=*" %%a in ('es -r "D:\\temp\\stringtie\\.*-[0-9]{3}值-记录期\.txt"') do (
- echo 要删除%%a
- echo del %%a 只是测试用,自行修改删除命令
- )
-
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |