У меня есть каталог, полный презентаций PowerPoint (pptx). Я пытаюсь найти презентации, в которых есть слово «декабрь». На моем Mac я мог использовать grep, но в Windows я пытался использовать Powershell и командную строку, но это не работает.
Я пробовал искать в других сообщениях, но нашел что-то вроде этого "другой пост
Я попытался использовать findstr /s /i /m "\<december.*" *.*
в командной строке, но он вернул только один .doc и ни один из файлов pptx. Я знаю, что у меня есть несколько файлов pptx со словом «декабрь».
Я также пробовал в Powershell следующее:
Location = "C:users\mary\desktop
SearchStr = "december"
Sel = Select-String -pattern SearchStr -path Location
If (Sel -eq null)
{
write-host "Location does not contain SearchStr
}
Else
{
write-host "Found 'n Sel"
}
Write-host "end"
И я понимаю, что файл не читается. Я хочу, чтобы он посмотрел в каталог.
Любая помощь приветствуется.
Google может быть вашим другом, мой самый первый результат с ключевыми словами powershell search ppt
выглядит многообещающим
@TessellatingHeckler - Мои файлы не заархивированы. Мне не нужно их распаковывать. Для меня это очень чуждое понятие.
@LotPings - Если вы внимательно прочитаете сообщение, то увидите, что это сообщение написано кем-то, у кого есть проблемы с работой кода и который просит о помощи. У него нет ответов. Мне нужно что-то, что работает, а не код, который не работает.
Мне неизвестен модуль Powershell для poweroint, позволяющий упростить работу с файлами ppt (x) без установки MsOffice, например ImportExcel
или PSExcel
для Excel. Поэтому вам нужно использовать COM-объект и своего рода удаленное управление PowerPoint из PowerShell. Есть примеры для Word и Excel, меньше для PowerPoint. Если вы привыкли к vba для PowerShell, вы знаете объекты, методы, перечисления, которые предоставляет PowerPoint, и можете использовать их также через PowerShell - я нет. Ясно, что ваш упрощенный подход с grep не может работать, и если вам действительно интересно, я указал, как вы могли бы пойти с некоторыми усилиями.
Файлы @ dev_2018 .pptx (и другие форматы Office .docx и .xlsx) сжимаются внутри, они представляют собой примерно файлы .zip под другим именем. Скопируйте файл .pptx
и переименуйте его в .zip
, и вы увидите, что вы можете открыть его с помощью инструмента Zip (7zip, WinZip и т. д.). Это означает, что нет простого способа найти простой текст путем чтения данных файла с помощью любого инструмента обработки текста (get-content, select-string, grep и т. д.), Содержимое файла должно быть сначала распаковано.
Файл pptx - это не простой текстовый файл. На самом деле это zip-файл (используйте 7-Zip, чтобы распаковать его и посмотреть). Такой поиск не принесет очень хороших результатов, если вообще даст. В качестве теста откройте pptx в Notepad ++ и посмотрите, как он выглядит. Возможно, вы можете адаптировать https://blogs.technet.microsoft.com/heyscriptingguy/2012/08/01/find-all-word-documents-that-contain-a-specific-phrase/ для того, чтобы делать то, что вы хотите для pptx, или поискать другое решение теперь, когда вы знаете, что простой текст не будет работать.
"Я пробовал искать в других сообщениях, но нашел что-то вроде этого "другого сообщения" - и .. вы читали тот пост? Потому что комментарий Райана к ответу объясняет, почему вы не можете этого сделать. pptx файлы сжаты. См. Также stackoverflow.com/a/1249827/478656.