1

Мне нужно искать на диске с большим количеством файлов любые документы (PDF, DOC, DOCX, XLS и т.д.), Имя файла которых соответствует одному или нескольким из нескольких сотен слов.

Встроенный инструмент поиска работает медленно и плохо работает со многими поисковыми словами. Кто-нибудь знает инструмент / программу, которая может помочь?

1 ответ1

0

Основываясь на предложении mnmnc, я создал скрипт Powershell, который, похоже, справился. Это медленно, но дает результаты, которые я хочу.

$phrases = ("*Wildcard*,*separated*,*array*,*of*,*search*,*terms*")

Remove-Item .\results.txt

foreach ($p in $phrases){
    $results = @(Get-ChildItem -Recurse -Path 'E:\myPath\' -Filter "$m" | where{$_.Extension -match "doc|docx|pdf|txt|xls|xlsx"} | Select-Object Fullname)

    if($results.count -ne 0){
        $m + "      " + $results.length >> ".\results.txt"
        $results >> ".\results.txt"
        "

        " >> ".\results.txt"
    }
}

Это перебирает фразы и видит, есть ли файлы с разрешенным расширением, которые соответствуют поисковой фразе. Результаты помещаются в массив, и, если в массиве есть какие-либо элементы, фраза, количество результатов и имена файлов печатаются в текстовый файл.

Этот цикл foreach, вероятно, ужасно дорогой, и я не удивлюсь, если бы был лучший способ сделать это, но я просто позволю этому работать в фоновом режиме, поэтому я не возражаю против того, чтобы это заняло некоторое время.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .