Когда я ищу слово "компьютер" в моей папке, которая содержит несколько файлов .docx, Windows выводит список файлов, которые содержат это слово, и это хорошо.

Но я хотел бы видеть больше, чем список имен файлов. Я хочу увидеть предварительный просмотр файла, в котором было найдено слово (в нем можно просто указать число символов X / слово до и после ключевого слова или полное предложение).

(Я не спрашиваю о приложении, которое может сделать это. Я хотел бы использовать функцию поиска Windows)

Является ли это возможным?

Подойдет любое решение: с помощью win file explorer, консоли cmd или PowerShell.

1 ответ1

0

Итак, вы разместили это на форуме помощника по сценариям PowerShell, и это не вопрос / проблема PS, а общий вопрос об использовании Windows Explorer.

Если вы говорите, что делаете это в PS, то вы должны написать это сами.

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

Демо-версия здесь:

https://www.youtube.com/watch?v=PSSDzrra21g

Обновление на основе ответа OP

Хорошо, но то, о чем вы спрашиваете, не из коробки. Вы должны написать это самостоятельно, как я уже говорил ранее.

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

Вы просите выполнить поиск и попасть в это место в файле на основе ключевого слова. Опять же, не что-то из коробки на Window в любом случае.

Итак, это работа с нуля. Мы поможем с написанным вами кодом, но не будем писать его с нуля. Ну, иногда это случается, если кто-то чувствует себя действительно щедрым. Однако для этого и нужны консультанты.

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

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

В Интернете есть примеры того, как это сделать для разных типов файлов. Пример:

https://social.technet.microsoft.com/wiki/contents/articles/29851.powershell-trick-search-highlight-text-in-ms-word.aspx

$objWord = New-Object -ComObject word.application
$objWord.Visible = $True
$objDoc = $objWord.Documents.Open("C:\temp\test.docx")


$FindText = "document"

  foreach ($docrange in $objDoc.Words)
  {
     if ($docrange.Text.Trim() -eq $FindText)
     {
        $docrange.highlightColorIndex = [Microsoft.Office.Interop.Word.WdColorIndex]::wdYellow 
     }
  }

Теперь это только для Word. Если у вас есть Excel, PowerPoint, Visio, PDF (для этого требуется дополнение), текст (это проще всего) и т.д., У каждого из них есть своя собственная объектная модель, которую вы должны знать и использовать.

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