Мне нужно найти файл name.dll
который имеет номер версии 1.1.1
в Windows 8
.
Можно ли выполнить поиск по полям FIle version
Product version
?
2 ответа
Подобные расширенные запросы на самом деле не поддерживаются в инструментах поиска общего назначения, таких как встроенные в Explorer или панель Charms. Однако PowerShell (который также встроен в Windows 7 и более поздние версии) очень способен справиться с этой задачей.
В PowerShell файловые объекты имеют свойство VersionInfo
которое содержит дочерние свойства, содержащие данные, по которым вы хотите выполнить фильтрацию. Если вы знаете, как ссылаться на эти свойства, создание скрипта для поиска файлов на их основе становится довольно тривиальным.
Для всех файлов с именем "name.dll" с версией файла "1.1.1" на C:\ сделайте следующее:
Get-ChildItem C:\ -Include name.dll -Recurse | Where-Object {$_.VersionInfo.FileVersion -eq '1.1.1'}
Для всех файлов с именем "name.dll" с версией продукта "1.1.1" на C:\ сделайте следующее:
Get-ChildItem C:\ -Include name.dll -Recurse | Where-Object {$_.VersionInfo.ProductVersion -eq '1.1.1'}
Для файлов с именем "name.dll", которые имеют версию файла ИЛИ ProductVersion "1.1.1" на C:\, сделайте следующее:
Get-ChildItem C:\ -Include name.dll -Recurse | Where-Object {$_.VersionInfo.FileVersion -eq '1.1.1' -or $_.VersionInfo.ProductVersion -eq '1.1.1'}
Имейте в виду, что они будут совпадать, только если значения версии файла или версии продукта в точности совпадают со строкой «1.1.1». Для получения информации о том, как использовать эти команды другими способами, включая возможность сопоставления на основе других критериев или использования регулярных выражений, вы должны проверить некоторые встроенные справочные документы с помощью следующих команд:
Get-Help Get-ChildItem -Detailed
Get-Help Where-Object -Detailed
Get-Help about_Comparison_Operators
Get-Help about_Operators
Get-Help about_Regular_Expressions
Я знаю, что это «старый» пост, но можно искать файл по версии файла в поиске Windows.
Откройте окно обозревателя в базовом каталоге, из которого вы хотите выполнить поиск, например, C:\windows. В поле поиска введите [имя_файла]. [Ext] И system.fileversion: <= 1.1.1.1 (или любые другие требования к версии).
Вы можете использовать подстановочные знаки в сочетании с операторами BOOLEAN для параметров поиска. См. Следующий сайт Microsoft для некоторых предложений. Обратите внимание, что предоставленный список не является полным списком, поэтому мне пришлось отчасти догадываться, чтобы выяснить, могу ли я искать «System.fileversion» http://windows.microsoft.com/en-us/windows7/advanced-tips-for -поиск в-окна
Вот пример, который я сделал из папки на сетевом ресурсе:
system.filename:~=AmazingCharts AND system.filename:~>exe AND system.fileversion:~=6.7.0
- Первый параметр ищет все файлы, содержащие слова AmazingCharts где-то в значении имени файла.
- Второй параметр изолирует поиск всех файлов, которые END в exe
- Третий параметр дополнительно фильтрует результаты поиска по тем значениям, которые содержат 6.7.0.
Я заметил, что результаты поиска медленные для этого процесса.