Фильтровать файлы по имени и содержимому в Windows 7

610
Queequeg

Как: фильтровать файлы по имени и содержимому в Windows 7?

Мне нужно найти файлы с bob.xmlрекурсивным именем и оставить (в результатах поиска) только те, которые содержат фразу<gold>100</gold>

Можно ли это сделать под Windows 7 без использования какого-либо внешнего программного обеспечения ( которое я должен загрузить и установить )?

Лучшее решение будет использовать только поисковые запросы Windows Explorer (ввод в верхнем правом углу)

1
Это было бы легко сделать из командной строки: `findstr / s"100"bob.xml` или с помощью лучшей поисковой утилиты, такой как [AstroGrep] (http://superuser.com/a/512391/138343). Это * может * быть возможно с помощью поиска Windows, если XML-файлы [проиндексированы] (http : //superuser.com/questions/483492/possible-to-get-windows-8-search-to-look-into-files-other-than-txt-and-xml), но я не уверен. Windows Поиск [отстой] (http://superuser.com/questions/514331/how-to-search-only-the-filename-for-a-substring-in-windows) для [уверен] (http: // superuser. ком / вопросы / 538670 /, как к поиску-в-нескольких папок-в-Windows-7)! Karan 11 лет назад 0
Из интереса, почему исключение внешних инструментов? snowdude 11 лет назад 0

1 ответ на вопрос

3
fussmonkey

Я не уверен, каковы ваши ограничения в отношении «внешнего программного обеспечения», но вы можете использовать PowerShell, который включен в Win7. Чтобы открыть его, вы можете просто ввести «PowerShell» в строке поиска «Пуск» или найти его (я думаю) в разделе «Пуск»> «Все программы»> «Стандартные»> Windows PowerShell.

Этот набор команд будет рекурсивно находить файлы с именем «bob.xml» и будет возвращать только имена тех, которые содержат текст «100».

dir -filter bob.xml -recurse | select-string -pattern '<gold>100</gold>' -list | select-object -unique 'Path'

Если вы хотите вывести эти результаты в текстовый файл, чтобы вы могли что-то с ним сделать, это поможет.

dir -filter bob.xml -recurse | select-string -pattern '<gold>100</gold>' -list | select-object -unique 'Path' | out-file c:\temp\bob_search.txt

PowerShell просто отлично :) Это прекрасно работает! ** Можно ли это сделать с помощью только Windows Explorer? ** Queequeg 11 лет назад 0
Я не смог найти способ заставить Windows Explorer сделать это. Из того, что я прочитал (см. [Ссылка] (http://answers.microsoft.com/en-us/windows/forum/windows_7-files/how-do-i-add-search-filters/e84f8397-aa0b- 44f3-b8b2-a094a84e7aa0)) доступные фильтры зависят от типа файлов, отображаемых в результатах. Судя по ответам в приведенной выше ссылке, не похоже, что содержимое файла является опцией. Тем не менее, может быть способ, я просто не знаком с этим. Как вы можете догадаться, я склонен использовать PS или другие внешние инструменты, когда мне нужны такие вещи. Удачи, хотя! fussmonkey 11 лет назад 0