我需要使用 Windows CMD 提示符查找目录中具有特定字符串的文件。
例如,我需要找到具有如下字符串的文件:
<h1>Select an Item</h1>
“findstr”就是您要找的。
findstr /I "<h1>Select\ an\ Item</h1>" *.*
findstr
是命令,/I
是匹配字符串大小写的标志。 "<h1>Select\ an\ Item</h1>"
是您的字符串(注意转义的空格!),*.*
表示“在此目录中的所有文件中”。
基本语法是
findstr "seachString" filename.ext
。
您可以将 filename.ext
替换为 *.ext
或 *.*
来过滤白痴文件类型或查看所有文件。
这只会在当前目录中查找,而不是递归地查找。
有关命令的更多信息 findstr 文档
findstr /s /i /m /c:"abc" *.docx *.doc
其中
/s
递归搜索(包括子目录),/i
表示搜索不区分大小写,而 /m
如果存在匹配则仅打印文件名(有关参数的更多信息可以在 here 找到)。
您将获得包含该文本的所有 Word 文档的列表。
您需要的命令基本上是
findstr
。
类型
findstr /?
根据指示提示。
可能对您有用的命令是
findstr /m /g:"a file containing your string or strings" *
或
findstr /m /L /c:"<h1>Select an Item</h1>" *
可能需要对
"quoted string"
的内容进行一些实验,尤其是字符行 <>()
和其他对 cmd.exe
具有特定含义的内容。
在当前目录的所有文本文件中查找某个字符串:
cls & for %i in (*.txt) do find /i "search text" < "%i" && (echo : %i & echo -)
在 Win 10 中测试