如何在cmd中进行简单的文件搜索

Bog*_*SFT 109 windows command-line cmd

我想从Windows命令行(而不是电源shell)快速搜索给出其名称或部分名称的文件.这类似于打开资源管理器并使用顶部的搜索框.

注意:dir可以基于字符串模板进行搜索,但不会在子目录中进行搜索.

注2:findstr可用于在文件内搜索令牌并具有递归标志; 有趣的是,可以轻松发现更复杂的发现......

Gil*_*cas 143

dir /s *foo* 在当前文件夹和子文件夹中搜索.

它找到目录和文件.


Vin*_*tav 105

dir /b/s *.txt  
Run Code Online (Sandbox Code Playgroud)

搜索目录树中的所有txt文件.使用之前,它只是改变目录使用

cd/
Run Code Online (Sandbox Code Playgroud)

您还可以使用将列表导出到文本文件

dir /b/s *.exe >> filelist.txt
Run Code Online (Sandbox Code Playgroud)

并在使用中搜索

type filelist.txt | find /n "filename"
Run Code Online (Sandbox Code Playgroud)

编辑1: 虽然这个dir命令从旧的dos天开始工作,但Win7添加了一个名为Where的新东西

where /r c:\Windows *.exe *.dll
Run Code Online (Sandbox Code Playgroud)

将按照@SPottuit建议在驱动器c:\ Windows中搜索exe&dll,你也可以将输出复制到剪贴板

where /r c:\Windows *.exe |clip
Run Code Online (Sandbox Code Playgroud)

只是等待提示返回,并且在此之前不要复制任何内容.

编辑2: 如果您正在递归搜索并且输出很大,您可以随时使用more以启用分页,它将显示-- More --在底部,并且一旦按下SPACE或按下时逐行移动将滚动到下一页ENTER

where /r c:\Windows *.exe |more
Run Code Online (Sandbox Code Playgroud)

如需更多帮助,请尝试

where/?
Run Code Online (Sandbox Code Playgroud)

  • 通过在`dir`后面添加`/ b`,只返回文件名或文件路径(如果在多个文件夹中搜索)(**b**是格式),并且没有文件和文件夹的详细信息.通过在`dir`后面添加`/ s`,也可以搜索**s**ub-directories.[有关dir命令的更多信息](https://technet.microsoft.com/en-us/library/cc755121.aspx). (6认同)
  • 您还可以通过将`>> filelist.txt`替换为`来将列表导出到剪贴板 clip`.[有关使用|的更多信息 剪辑(http://www.labnol.org/software/copy-command-output-to-clipboard/2506/). (5认同)
  • 不知道为什么这不是公认的答案。包含所有内容以及更多内容。感谢您发布此内容。希望我能不止一次投票! (2认同)
  • @Vinod Srivastav,非常好。解释了所有可能的情况。 (2认同)