我想从windows命令行(不是powershell)快速搜索一个给定名称或部分名称的文件,这类似于打开资源管理器并使用顶部的搜索框。注意:dir可以基于字符串模板进行搜索,但不会在子目录中进行搜索。注2:findstr可用于查找文件内的token,有递归标志;有趣的是更复杂的发现很容易被发现...
dir
findstr
yfjy0ee71#
dir /s *foo*在当前文件夹和子文件夹中搜索。它查找目录和文件。其中/s表示(documentation):/s列出指定目录和所有子目录中指定文件名的所有匹配项。
dir /s *foo*
r7s23pms2#
请尝试以下命令
列出当前目录和子目录中的所有文件
dir /b/s *.txt
上面的命令搜索目录树中的所有txt文件。但是当windows开始命名目录为.nuget,.vscode时,它也附带了上面的命令。为了避免这种情况并获得一个干净的列表,请使用/a:-d filter作为
.nuget
.vscode
/a:-d
dir /a:-d /b/s
在使用之前,只需使用以下命令将目录更改为root
cd/
还有一个笨拙的命令可以执行相同的操作
for /r %f in (*) do @echo %f
**注意:**如果您错过了上面命令中的@echo部分,它将尝试执行目录中的所有文件,而/r使它递归地深入查找子目录。将结果导出到文本文件
@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,它也会列出目录。
-d
在Windows 7及以上版本中使用where:
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启用分页,它将在底部显示-- More --,并且在您按SPACE或按ENTER逐行移动时滚动到下一页
-- More --
SPACE
ENTER
where /r c:\Windows *.exe |more
如需更多帮助,请尝试
where/?
vkc1a9a23#
dir *.txt /s /p将给予更详细的信息。
dir *.txt /s /p
ryhaxcpt4#
DIR的问题是它会返回错误的答案。如果你使用DIR *.DOC在文件夹中查找DOC,它也会给予你DOCX。搜索*.HTM也会给你HTML等等...
DIR *.DOC
*.HTM
pwuypxnk5#
您可以通过DOS和资源管理器GUI在Windows中进行搜索。DOS:1)DIR2)ICACLS(搜索文件和文件夹以设置ACL)3)计算...............2)范例icacls c:ntoskrnl.* /grant system:(f)/c /t,然后使用sysinternals中的PMON监视哪些文件夹被拒绝访问。结果包含访问路径包含你的驱动器进程名称为explorer.exe这些是你必须使用的过滤器
5条答案
按热度按时间yfjy0ee71#
dir /s *foo*
在当前文件夹和子文件夹中搜索。它查找目录和文件。
其中/s表示(documentation):
/s列出指定目录和所有子目录中指定文件名的所有匹配项。
r7s23pms2#
请尝试以下命令
列出当前目录和子目录中的所有文件
上面的命令搜索目录树中的所有txt文件。
但是当windows开始命名目录为
.nuget
,.vscode
时,它也附带了上面的命令。为了避免这种情况并获得一个干净的列表,请使用
/a:-d
filter作为在使用之前,只需使用以下命令将目录更改为root
还有一个笨拙的命令可以执行相同的操作
**注意:**如果您错过了上面命令中的
@echo
部分,它将尝试执行目录中的所有文件,而/r
使它递归地深入查找子目录。将结果导出到文本文件
您也可以使用将列表导出到文本文件
并使用搜索
如果要查找具有特殊属性的文件,可以尝试
列出所有隐藏文件
列出所有系统文件
列出所有只读文件
列出所有非索引文件
如果您从上面的所有命令中删除
-d
,它也会列出目录。在Windows 7及以上版本中使用
where
:虽然这个dir命令在旧的dos时代就可以工作了,但是Win7添加了一个新的东西,叫做Where
将在驱动器c:\Windows中搜索exe&dll,如@SPottuit所建议,您也可以使用将输出复制到剪贴板
只要等待提示符返回,在此之前不要复制任何内容。
使用
more
分页如果您正在递归搜索,并且输出很大,您可以始终使用
more
启用分页,它将在底部显示-- More --
,并且在您按SPACE
或按ENTER
逐行移动时滚动到下一页如需更多帮助,请尝试
vkc1a9a23#
dir *.txt /s /p
将给予更详细的信息。ryhaxcpt4#
DIR的问题是它会返回错误的答案。如果你使用
DIR *.DOC
在文件夹中查找DOC,它也会给予你DOCX。搜索*.HTM
也会给你HTML等等...pwuypxnk5#
您可以通过DOS和资源管理器GUI在Windows中进行搜索。
DOS:
1)DIR
2)ICACLS(搜索文件和文件夹以设置ACL)
3)计算...............
2)范例
icacls c:ntoskrnl.* /grant system:(f)/c /t,然后使用sysinternals中的PMON监视哪些文件夹被拒绝访问。结果包含
访问路径包含你的驱动器
进程名称为explorer.exe
这些是你必须使用的过滤器