File 根据文件是否包含字符串搜索然后删除

File 根据文件是否包含字符串搜索然后删除,file,batch-file,text,delete-file,findstr,File,Batch File,Text,Delete File,Findstr,我想在单个目录中的多个文本文件中搜索字符串(“monkey”),如果该字符串存在,则根据最简单的方法,选择其中一个: 重命名匹配字符串-例如,更改monkey monkey1,然后保存文件并进行搜索/处理 或 删除具有匹配字符串的任何文件 已搜索,但似乎找不到任何直接的内容。使用本机Windows批处理命令修改文本文件的内容相当复杂,因此选项1)并不容易。尽管下载第三方工具(如gnu-sed for Windows)很容易 选项2)非常简单。您可以在命令行上执行此操作,而无需批处理文件。假设当前

我想在单个目录中的多个文本文件中搜索字符串(“monkey”),如果该字符串存在,则根据最简单的方法,选择其中一个:

  • 重命名匹配字符串-例如,更改monkey monkey1,然后保存文件并进行搜索/处理
  • 删除具有匹配字符串的任何文件

  • 已搜索,但似乎找不到任何直接的内容。

    使用本机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用于基本正则表达式搜索