findstr MS-DOS命令无法搜索子目录

11

由于旧硬盘打开索引时会不停地发出噪音,因此我在Windows 7中必须关闭Windows搜索索引!

现在我想使用Windows命令提示符在当前目录和子目录中搜索特定文本术语的所有文件

如何使用Windows命令findstr在子目录中进行搜索?

当我打开命令提示符并将目录更改为C:\Users\Damien\Documents\Research\2012July并运行命令findstr "thesis" *.tex /S时,我会收到以下错误消息:

FINDSTR: Cannot open /s

如果我去掉 /S,这个命令只会在当前目录下搜索,但我希望能够搜索子文件夹中的文本。


2个回答

30

你需要将/S放在开头,即:

findstr /S "thesis" *.tex

从内置帮助文档中:

C:\>findstr /?
Searches for strings in files.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
        [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
        strings [[drive:][path]filename[ ...]]

你的修改器/开关,无论它们被称为什么,都需要在模式/字符串之前出现


@Jon 如果我还想指定路径(例如findstr /S "some_string" *.txt PATH),我应该如何构造语法?我要如何指定要搜索的包含子文件夹的文件夹的路径?谢谢。 - IberoMedia

8
您的参数顺序错误,请尝试以下操作:
findstr /S "thesis" *.tex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接