通过通配符从 Windows 搜索中排除目录

msk*_*her 18 windows-7 windows-search wildcards

搜索索引干扰了我们的构建过程,我想从索引器中排除我们 dev 目录的所有实例(我们有一个主干和分支设置)。
我可以排除整个父目录,但这会排除太多文件。

我可以通过在索引选项中取消选择每个实例来手动完成,但这非常手动且乏味。

我在注册表中找到了规则HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules,但我不知道即时更新它是否符合犹太教规。

是否可以通过通配符或其他一些不太手动的标准从 Windows 搜索中排除目录?

msk*_*her 21

我查看了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules钥匙,发现了一些有趣的东西。

DefaultRules\1 包含:

Default   REG_DWORD    0x00000001
Include   REG_DWORD    0x00000000
Policy    REG_DWORD    0x00000000
Suppress  REG_DWORD    0x00000000
URL       REG_SZ       file:///C:\Users\*\AppData\Local\Temp\*
Run Code Online (Sandbox Code Playgroud)

看看那个URL键 - 两个通配符!

因此,由于 Windows Search 本身支持通配符,我们所要做的就是调整现有的异常。

向 Windows 搜索添加通配符例外

  1. 添加模板异常。
    通过转到Indexing OptionsModify 并取消选择一个目录(在我的情况下为C:\Users\MyName\dev\trunk\bin),为合适的目录添加例外。
  2. 停止 Windows 搜索服务。
    转到Services,选择Windows Search,右键单击它,然后选择Stop
  3. 查找现有异常。
    打开注册表编辑器并导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules.
    查看每个编号的子项以找到您的子项。
  4. 调整异常。
    就我而言,我签出了多个分支,因此我将为trunk每个版本化分支(例如 3.2、4.0 等)创建目录。所以我把URL钥匙从

    file:///C:\Users\MyName\dev\ProjectName\trunk\bin
    
    Run Code Online (Sandbox Code Playgroud)

    file:///C:\Users\MyName\dev\ProjectName\*\bin
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重新启动 Windows 搜索服务。
    右键单击Windows Search并选择StartRestart

就是这样!在索引选项中甚至未选中/排除目录。

  • 有没有人能够确认通配符是否跨越多个目录?假设我想阻止索引所有名为“node_modules”的文件夹,无论它们在文件层次结构中的哪个位置? (5认同)
  • Windows 10 给出错误编辑值无法编辑 URL:写入值的新内容时出错。编辑:啊,只需要[更改密钥的权限](http://superuser.com/questions/986888/why-cant-i-change-window-10-registry-key) (2认同)