Everything命令行搜索需用es.exe,配置PATH后可用-s参数搜索、-path等控制输出,支持批处理与PowerShell自动化处理。

如果您希望在Everything中通过命令行快速搜索文件或目录,而非依赖图形界面,则需要调用其内置的命令行工具es.exe。以下是使用es.exe执行搜索、编写脚本调用的具体方法:
一、确认es.exe路径并配置环境变量
es.exe默认与Everything主程序安装在同一目录下,通常位于Everything安装目录es.exe(如C:Program FilesEverythinges.exe)。为便于脚本调用,建议将该目录添加至系统PATH环境变量。
1、打开Everything安装目录,确认es.exe文件存在。
2、右键“此电脑”→“属性”→“高级系统设置”→“环境变量”。
3、在“系统变量”中找到Path,点击“编辑”,新增Everything安装目录完整路径。
4、打开新命令提示符窗口,输入es.exe -version验证是否可执行。
二、基础搜索语法与常用参数
es.exe支持类SQL语法的查询表达式,所有搜索均以命令行参数形式传入,不启动GUI。核心参数为-s(search),后接搜索关键词或表达式。
1、搜索包含“report”的所有文件:es.exe -s report
2、精确匹配完整文件名(含扩展名):es.exe -s "invoice.pdf"
3、按路径筛选(仅在D:Projects内查找):es.exe -s "D:\Projects\*.log"
4、组合条件(PDF且修改时间在2024年之后):es.exe -s "ext:pdf date-modified:2024-01-01.."
三、输出格式控制与重定向保存
es.exe默认将结果以纯文本逐行输出至控制台,可通过参数指定字段分隔符、列宽及编码,便于后续脚本解析。
1、以制表符分隔输出路径和大小:es.exe -s "docx" -i -siz -tab
2、仅输出完整路径(无大小、日期等附加信息):es.exe -s "config.ini" -path
3、将结果保存为UTF-8编码的CSV文件:es.exe -s "*.tmp" -csv > temp_files.csv
4、限制最多返回50条结果(避免大量输出阻塞):es.exe -s "backup" -limit 50
四、在批处理脚本中调用es.exe实现自动化
Windows批处理可直接调用es.exe,并结合for循环、if判断处理搜索结果,适用于定期归档、敏感文件扫描等场景。
1、创建find_sensitive.bat,搜索含密码字样的文本文件:@echo off & es.exe -s "password|passwd|pwd" -ext:txt -path > sensitive_list.txt
2、检查结果是否非空,并输出计数:for /f %%i in ('es.exe -s "conf" -count') do echo Found %%i files
3、遍历搜索结果并执行操作(如复制到安全目录):for /f "usebackq delims=" %%a in (`es.exe -s "2024Q2" -path`) do copy "%%a" "D:Archive"
五、在PowerShell脚本中结构化处理搜索结果
PowerShell可将es.exe输出解析为对象数组,支持管道操作、属性筛选与导出,适合复杂逻辑处理。
1、执行搜索并将每行路径转为PowerShell对象:$files = es.exe -s "*.log" -path | ForEach-Object { [PSCustomObject]@{Path=$_} }
2、筛选大于10MB的日志并获取最新修改时间:$largeLogs = $files | Where-Object { (Get-Item $_.Path).Length -gt 10MB } | Sort-Object { (Get-Item $_.Path).LastWriteTime } -Descending | Select-Object -First 5
3、导出为JSON供其他程序消费:$largeLogs | ConvertTo-Json | Out-File logs_summary.json


















