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

use*_*297 5 text file batch-file findstr delete-file

我想在单个目录中搜索多个文本文件中的字符串('monkey'),如果字符串存在,那么要么根据最简单的方法:

  1. 重命名匹配的字符串 - 例如,更改猴子猴子1并保存然后文件并继续搜索/处理

要么

  1. 删除任何具有匹配字符串的文件.

已搜索但似乎无法找到任何直截了当的东西.

dbe*_*ham 8

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

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

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

如果从批处理文件中执行,则需要将百分比加倍 - 使用%%F而不是%F.

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