利用 Everything 查找文件
以只读方式使用 es.exe 客户端访问正在运行的 Everything 索引。尽量减少工具调用次数和返回的文本量。
路由搜索
- 若已知确切路径,使用
Test-Path或Get-Item。 - 在已知工作区中查找文件名时使用
rg --files,在已知目录树中查找内容时使用rg。 - 当文件位置未知、位于工作区之外、需跨计算机搜索或基于索引元数据时,优先使用 Everything。
执行高效查询
-
每个会话最多检查一次
es.exe的可用性,或在上次查询失败后检查:Get-Command es.exe -ErrorAction SilentlyContinue否则,直接执行搜索。如果
es.exe缺失或返回 IPC 错误 8,则使用范围尽量缩小的备选方案。除非用户要求,否则不要安装、启动或修复软件。 -
在增加输出量之前,先缩小查询范围:
es.exe -n 20 "report" es.exe -path "C:\Work" /a-d -n 20 "ext:xlsx" es.exe -size -dm -n 20 "size:>1gb"使用
/ad表示文件夹,/a-d表示文件,-path指定子树,以及ext:、size:、dm:、dc:等 Everything 搜索词。包含空格的路径和搜索词请用引号括起来。 -
在 PowerShell 7 或更高版本中调用时,将
-argv放在第一位。在 Windows PowerShell 5.1 和其他 shell 中省略-argv。 -
默认返回纯路径。仅当需要结构化元数据时才使用
-json和额外列。仅当结果数量很重要或需要细化已截断的查询时,才使用-get-result-count。 -
保持默认上限为 20 条。若达到上限,请在请求更多结果前优化查询条件。除非用户要求,否则不要将结果导出到文件。
报告结果
- 返回最小且足够精确的路径集,并汇总省略的匹配项。
- 若无结果,说明查询语句或搜索范围。
- 将零结果视为关于当前 Everything 索引的佐证,而非证明未索引区域为空。
- 对于已知项目目录树,避免使用
content:;它默认未被索引,且通常不如rg高效。
保持搜索只读
不要使用 es.exe 的变更状态选项,例如 -exit、-reindex、-save-db、运行计数设置器或保存设置更改。除非用户另行明确要求,否则不要删除、移动、复制或打开搜索结果。