如何搜索文件中的Windows搜索索引

时间:2016-10-13 14:36:03

标签: powershell windows-search

我有Windows搜索服务索引的文件。我需要函数,它可以在文本文件中找到一些字符串。我在PowerShell中有脚本,但它没有正常工作。

return hash<string>() (sd.isbn());

如果function search { param($path, $word) $c = $path + "\%" $query = "SELECT System.ItemName, System.ItemPathDisplay FROM SystemIndex WHERE System.ItemPathDisplay LIKE '$c' AND CONTAINS('$word')" $ADOCommand = New-Object -ComObject ADODB.Command $ADOConnection = New-Object -ComObject ADODB.Connection $RecordSet = New-Object -ComObject ADODB.RecordSet $ADOConnection.Open("Provider=Search.CollatorDSO;Extended Properties='Application=Windows';") $RecordSet.Open($query, $ADOConnection) try { $RecordSet.MoveFirst() } catch [System.Exception] { "no records returned" } while (-not($RecordSet.EOF)) { if ($locatedFile) { Remove-Variable locatedFile } $locatedFile = New-Object -TypeName PSObject Add-Member -InputObject $locatedFile -MemberType NoteProperty -Name 'Name' -Value ($RecordSet.Fields.Item("System.ItemName")).Value Add-Member -InputObject $locatedFile -MemberType NoteProperty -Name 'Path' -Value ($RecordSet.Fields.Item("System.ItemPathDisplay")).Value $locatedFile $RecordSet.MoveNext() } $RecordSet.Close() $ADOConnection.Close() $RecordSet = $null $ADOConnection = $null [gc]::Collect() } 它适用于我们拥有的文件

*some text *      Hello     * some text*

在文件中,但是当我们没有空格的时候没有,例如:

HelloWorld

我们也无法在$word = "Hello"是短语时进行搜索,例如&#34; Hello World&#34;。

任何人都知道如何修复它?

1 个答案:

答案 0 :(得分:0)

我认为问题出在查询中的 .modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; display: none; overflow: auto; overflow-y: scroll; } .modal.fade .modal-dialog { -webkit-transform: translate(0, -25%); -ms-transform: translate(0, -25%); transform: translate(0, -25%); -webkit-transition: -webkit-transform 0.3s ease-out; -moz-transition: -moz-transform 0.3s ease-out; -o-transition: -o-transform 0.3s ease-out; transition: transform 0.3s ease-out; } .modal.in .modal-dialog { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); } .modal-dialog { z-index: 1050; width: auto; padding: 10px; /*margin-right: auto; margin-left: auto;*/ } .modal-content { position: relative; background-color: #ffffff; border: 1px solid #999999; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; outline: none; -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); background-clip: padding-box; } 。您应该在搜索的单词中添加星号(*)通配符。 所以而不是:

CONTAINS

请尝试:

 WHERE System.ItemPathDisplay LIKE '$c' AND CONTAINS('$word')