batch-file - 批处理文件find解析出关键字

标签 batch-file find text-files

我有一个单词列表存储在名为 blacklist.txt 的文本文件中,我想查看另一个程序的输出并取出包含这些单词的所有行。

如果我这样做:

for /f %%G in (blacklist.txt) find /v /i "%%G" output.txt > newoutput.txt

我只得到最后一次查找的结果

如果我这样做:

for /f %%G in (blacklist.txt) find /v /i "%%G" output.txt > output.txt

我希望它更新文件并运行下一个查找,系统地过滤掉所有列入黑名单的字符串。然而事实并非如此,在运行第二次查找后,该文件将变为空白...

以前有人尝试过做类似的事情吗?

最佳答案

这就是我的意思。将以下内容放入批处理文件中并运行它:

for /f %%G in (blacklist.txt) do call :finder %%G
goto :EOF

:finder
find /v /i "%1" output.txt > output.tmp
copy output.tmp output.txt

output.txt 将包含不匹配的行。它还将包含多次输入文件的名称。为了避免这种情况,您可以使用 findstr 而不是 find 命令。

关于batch-file - 批处理文件find解析出关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344043/

相关文章:

python - 从 Bat 文件调用 Python 并获取返回码

c++ - 文件中的字符不正确

windows - 更改从 Windows 传输到 linux box 的文件的权限

windows - 批处理 TAB 分隔符还会在 ECHO 后删除字符 T、A 和 B

windows - 需要一个批处理命令来自动创建卡拉 OK

php - Laravel Eloquent::Find() 使用现有 ID 返回 NULL

jquery在父级之后,查找元素

数据表查找字符串并添加类

windows - BATCH 检查txt文件是否包含字符串并执行批处理

python - 如何更新文本文件而不重写它