Поиск строк в именах файлов с помощью PowerShell

#powershell #search #.doc

#powershell #Поиск #.doc

Вопрос:

Я только что приступил к новой работе, и мы пишем отчеты для клиентов, которые мне полезно прочитать, чтобы освоиться. Я пытался использовать PowerShell для передачи заголовков в текстовый файл, но, к сожалению, компания только недавно стандартизировала заголовки. Это означает, что отчеты могут называться как угодно, но, просмотрев .docs, многие из них имеют слово «отчет» в названии. Могу ли я в любом случае адаптировать свои текущие команды для более свободного поиска слова «отчет»?

 Get-ChildItem -recurse -include *.doc | Out-File P:report.txt
  

Комментарии:

1. Вы ищете слово «отчет» в имени файла или в содержимом документа Word?

2. Спасибо, я не уверен, что вы имеете в виду, и это не помогает мне с PowerShell, но все равно спасибо.

3. @Josh, это был вопрос, пытающийся прояснить, что вы имели в виду.

4. Ах, хорошо, извините. 🙂 Я ищу поиск по имени файла и только по имени файла. Большая часть этих отчетов написана в word, и я понимаю, что чтение содержимого файлов Word в PowerShell довольно громоздко, поэтому имена файлов должны дать мне достаточно результатов для просмотра.

Ответ №1:

Наиболее эффективная версия должна быть

 Get-ChildItem -Path "your path here" -recurse -Filter *report*.doc | Out-File P:report.txt
  

или, если вам нужен только путь в вашем файле:

 Get-ChildItem -Path "your path here" -recurse -Filter *report*.doc |  Select -ExpandProperty Fullname | Out-File P:report.txt
  

Ответ №2:

Попробуйте это:

 Get-ChildItem -Path "your path here" -recurse -include *.doc | select-String "report" | out-file P:report.txt
  

Комментарии:

1. : ( Компьютеру это не понравилось, и он начал подавать звуковой сигнал. lol — теперь все смотрят на меня!

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

3. Нет, приятель, я понятия не имею, почему ваш компьютер так себя ведет. Итак, вы использовали -Path с P:1_Contracts (2008-2013)??? убедитесь, что вы заключили их в кавычки, например: Get-ChildItem -path «P:1_Contracts (2008-2013)»

4. Я не задавал путь, глядя на него. Спасибо. Я запускаю его сейчас, но для фильтрации всего может потребоваться некоторое время. Я дам вам знать, как у меня дела. 🙂

5. По какой-то причине он вернул кучу тарабарщины, казалось, работал, пока я не открыл текстовый файл. Хотя спасибо за помощь. 🙂