,大家好我想写杀死一个目录中的所有文件的批处理文件 - 基本上每个文件将有“地位”在它蝙蝠文件删除所有具有特定字符串的文件?
我不能杀了文件扩展名的文件,无论是 - 有这个帖子 batch script delete file containining certain chars然而 ,这似乎并没有做到这一点
,大家好我想写杀死一个目录中的所有文件的批处理文件 - 基本上每个文件将有“地位”在它蝙蝠文件删除所有具有特定字符串的文件?
我不能杀了文件扩展名的文件,无论是 - 有这个帖子 batch script delete file containining certain chars然而 ,这似乎并没有做到这一点
for /f "delims=" %%a in ('
findstr /l /i /m /c:"status" "c:\somewhere\*.*"
') do echo del "%%a"
这使用findstr
列出包含文字(/l
)"status"
忽略字符串大小写(/i
)的文件(/m
)。使用for /f
命令处理该列表以对每个文件执行del
操作。
del
命令只会回显到控制台。如果输出正确,请删除echo
命令。
编辑如果字符串status
是不是里面的文件,但文件名,代码的文件名中或filecontent内减少到
del "c:\somewhere\*status*"
抱歉,根本没有这种喜悦 - 基本上唯一应该改变的是“c:\ somewhere \ *。*”位吧?我的文件路径是这样的 - C:\ Users \ John.Smith \ Desktop \ Docs \ - 所以最终的sytax应该是/ f“delims =”%a in('findstr/l/m/c:“status”“C :\ Users \ John.Smith \ Desktop \ Docs \ *。*“')echo del”%a“ – 2014-11-25 10:14:07
@Mr_Fish,是的,您应该更改'c:\ somewhere'部分以符合您的环境。如果要搜索的字符串可以是大写字母,那么在“findstr”中加入一个额外的'/ i'来表示它忽略大小写(我会将它添加到答案中)。如果输出到控制台是正确的(代码不会删除任何内容,只回显命令),请删除'echo'并再次执行代码以删除文件。 – 2014-11-25 10:21:53
@Mr_Fish,请记住'%a'用于命令行,'%% a'用于批处理文件,因为百分号需要转义 – 2014-11-25 10:23:41
'status'? – Stephan 2014-11-20 17:28:28
循环遍历所有文件。在每个文件上做一个'findstr'。如果'findstr'后的'%ERRORLEVEL%'为0,则删除文件。 – indiv 2014-11-20 17:32:19