如何在许多文件中搜索特定字符串并返回包含该字符串的所有文件的名称?

时间:2017-01-06 14:00:40

标签: batch-file cmd

我有一个包含许多* .inf文件的文件夹。我想在每个文件的内容中搜索字符串prolific。如果其中一个文件包含prolific,那么它应该返回该文件的名称,以便我可以对其进行其他操作,如删除或重命名。

我是新手。这是我最初的努力,但它不起作用,我不知道从哪里开始。 (我相信几年前我可以做到这一点,但我已经忘记了一切。)

@echo OFF

For %%a (%windir%\inf\oem*.inf) do (
    for /f "skip=2 tokens=*" %%b in ('find "prolific" "%%a"') do (
        Echo %%~nx# >> "%~dp0\output.txt"
    )
)

Pause

1 个答案:

答案 0 :(得分:2)

这可以使用 FINDSTR

通过一个命令行完成
%SystemRoot%\System32\findstr.exe /I /M "prolific" %SystemRoot%\inf\oem*.inf >>"%~dp0output.txt"

打开命令提示符窗口并运行findstr /?以获取有关Windows标准控制台应用程序的帮助。

/I ...搜索不区分大小写的 /M ...仅输出包含搜索字符串的文件名。

注意:%~dp0引用的批处理文件的驱动器和文件夹路径始终以反斜杠结束。所以不要添加额外的反斜杠。