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

m1m5dgzv  于 2023-03-19  发布在  Windows
关注(0)|答案(5)|浏览(413)

我想从windows命令行(不是powershell)快速搜索一个给定名称或部分名称的文件,这类似于打开资源管理器并使用顶部的搜索框。
注意:dir可以基于字符串模板进行搜索,但不会在子目录中进行搜索。
注2:findstr可用于查找文件内的token,有递归标志;有趣的是更复杂的发现很容易被发现...

yfjy0ee7

yfjy0ee71#

dir /s *foo*在当前文件夹和子文件夹中搜索。
它查找目录和文件。
其中/s表示(documentation)
/s列出指定目录和所有子目录中指定文件名的所有匹配项。

r7s23pms

r7s23pms2#

请尝试以下命令

列出当前目录和子目录中的所有文件

dir /b/s *.txt

上面的命令搜索目录树中的所有txt文件。
但是当windows开始命名目录为.nuget.vscode时,它也附带了上面的命令。
为了避免这种情况并获得一个干净的列表,请使用/a:-d filter作为

dir /a:-d /b/s

在使用之前,只需使用以下命令将目录更改为root

cd/

还有一个笨拙的命令可以执行相同的操作

for /r %f in (*) do @echo %f

**注意:**如果您错过了上面命令中的@echo部分,它将尝试执行目录中的所有文件,而/r使它递归地深入查找子目录。
将结果导出到文本文件

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

dir /b/s *.exe >> filelist.txt

并使用搜索

type filelist.txt | find /n "filename"

如果要查找具有特殊属性的文件,可以尝试

列出所有隐藏文件

dir /a:h-d /b/s

列出所有系统文件

dir /a:s-d /b/s

列出所有只读文件

dir /a:r-d /b/s

列出所有非索引文件

dir /a:i-d /b/s

如果您从上面的所有命令中删除-d,它也会列出目录。

在Windows 7及以上版本中使用where

虽然这个dir命令在旧的dos时代就可以工作了,但是Win7添加了一个新的东西,叫做Where

where /r c:\Windows *.exe *.dll

将在驱动器c:\Windows中搜索exe&dll,如@SPottuit所建议,您也可以使用将输出复制到剪贴板

where /r c:\Windows *.exe |clip

只要等待提示符返回,在此之前不要复制任何内容。

使用more分页

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

where /r c:\Windows *.exe |more

如需更多帮助,请尝试

where/?
vkc1a9a2

vkc1a9a23#

dir *.txt /s /p将给予更详细的信息。

ryhaxcpt

ryhaxcpt4#

DIR的问题是它会返回错误的答案。如果你使用DIR *.DOC在文件夹中查找DOC,它也会给予你DOCX。搜索*.HTM也会给你HTML等等...

pwuypxnk

pwuypxnk5#

您可以通过DOS和资源管理器GUI在Windows中进行搜索。
DOS:
1)DIR
2)ICACLS(搜索文件和文件夹以设置ACL)
3)计算...............
2)范例
icacls c:ntoskrnl.* /grant system:(f)/c /t,然后使用sysinternals中的PMON监视哪些文件夹被拒绝访问。结果包含
访问路径包含你的驱动器
进程名称为explorer.exe
这些是你必须使用的过滤器

相关问题