搜索然后删除,具体取决于文件是否包含字符串

时间:2012-08-08 16:18:44

标签: file batch-file text delete-file findstr

我想在单个目录中搜索多个文本文件以获取字符串('monkey'),如果字符串存在,则根据最简单的方式搜索:

  1. 重命名匹配的字符串 - 例如改变猴子猴子1然后保存文件并进行搜索/处理
    1. 删除任何具有匹配字符串的文件。
    2. 已经搜索过但似乎找不到任何直截了当的东西。

1 个答案:

答案 0 :(得分:8)

使用本机Windows批处理命令修改文本文件的内容相当复杂,因此选项1)并不容易。虽然如果你下载像gnu sed for Windows这样的第三方工具很容易。

选项2)非常简单。您可以在命令行上执行此操作而无需批处理文件。假设您当前的目录是您要查找文件的位置:

for /f "eol=: delims=" %F in ('findstr /m monkey *.txt') do del "%F"

如果在批处理文件中执行,则需要将百分比翻倍 - 使用%%F代替%F

FINDSTR命令有很多选项,例如/ I用于不区分大小写的搜索,/ S用于搜索子目录,/ R用于原始正则表达式搜索。