使用文件版本字段的 Windows 搜索

使用文件版本字段的 Windows 搜索

我需要查找name.dll具有版本号的1.1.1文件Windows 8。是否可以根据字段FIle version和进行搜索Product version

答案1

通用搜索工具(例如 Explorer 或 Charms Bar 内置的搜索工具)实际上不支持此类高级查询。但是,PowerShell(Windows 7 及更高版本也内置了该功能)完全可以处理这项任务。

在 PowerShell 中,文件对象有一个名为的属性VersionInfo,其中包含包含您要过滤的数据的子属性。一旦您知道如何引用这些属性,构建一个基于它们搜索文件的脚本就相当简单了。

对于 C:\ 上所有名为“name.dll”且文件版本为“1.1.1”的文件,请执行以下操作:

Get-ChildItem C:\ -Include name.dll -Recurse | Where-Object {$_.VersionInfo.FileVersion -eq '1.1.1'}

对于 C:\ 上所有名为“name.dll”且产品版本为“1.1.1”的文件,执行以下操作:

Get-ChildItem C:\ -Include name.dll -Recurse | Where-Object {$_.VersionInfo.ProductVersion -eq '1.1.1'}

对于 C:\ 上名为“name.dll”且文件版本或产品版本为“1.1.1”的文件,请执行以下操作:

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

答案2

我知道这是一篇“旧”帖子,但可以在 Windows 搜索中按文件版本搜索文件。

打开资源管理器窗口,进入您想要搜索的基本目录,例如 C:\windows。在搜索框中输入 [fileName].[ext] AND system.fileversion: <= 1.1.1.1(或您有的任何版本要求)。

您可以将通配符与 BOOLEAN 运算符结合使用作为搜索参数。请参阅以下 Microsoft 网站以获取一些建议。请注意,提供的列表不是完整列表,因此我不得不猜测是否可以搜索“System.fileversion” http://windows.microsoft.com/en-us/windows7/advanced-tips-for-searching-in-windows

下面是我从网络资源文件夹中执行的一个示例:

system.filename:~=AmazingCharts AND system.filename:~>exe AND system.fileversion:~=6.7.0
  • 第一个参数搜索文件名值中包含单词“AmazingCharts”的所有文件。
  • 第二个参数隔离搜索所有以 exe 结尾的文件
  • 第三个参数进一步将搜索结果过滤为包含 6.7.0 的值。

我确实注意到这个过程的搜索结果很慢。

相关内容