如何通过search-ms协议发起不含子文件夹的Windows搜索?
关于search-ms协议实现非递归Windows搜索的问题解答
- Windows 10及以上系统已废弃Vista时期search-ms协议中的
recursion参数,该参数无法再实现限制搜索范围为当前文件夹的效果。 - 资源管理器中切换“当前文件夹/所有子文件夹”时,底层并未修改search-ms协议表达式,而是通过调整搜索上下文的
ScopeFilter来实现范围切换,因此外部看不到协议字符串变化。 - 目前仍可通过search-ms协议实现非递归搜索,可行方案如下:
- 使用
System.Search.ScopeDepth属性限定搜索深度,构造命令示例:
其中search-ms:query=要搜索的内容&crumb=folder:C:\你的目标文件夹路径&prop=System.Search.ScopeDepth:0ScopeDepth:0表示仅搜索当前文件夹,不递归子目录,Windows 10/11系统测试有效。 - 若需更灵活的控制(比如脚本/程序调用场景),建议直接使用Windows Search Query API,能更精确地定义搜索范围和条件。
- 使用
内容的提问来源于stack exchange,提问作者Scrabyard
相关产品推荐
相关产品推荐

