有没有办法使用命令行从文件元数据中获取文件描述字段?

有没有办法使用命令行从文件元数据中获取文件描述字段?

我正在寻找一种方法来使用 Windows 10 和 11 上的命令行File description从文件的元数据中读取字段。

可以使用以下方法获取许多其他字段的值西米克如下文所述这个问题

但似乎没有办法File description使用该方法获取显示的值。例如,对于 windows explorer.exe,Win11 中显示的属性可能如下所示

在此处输入图片描述

但所有wmic显示的都是文件的完整路径:

C:\>wmic datafile where Name="C:\\windows\\explorer.exe" get Description
Description
C:\windows\explorer.exe

有没有办法让 explorer.exe 对话框中显示的每个字段并使用命令行获取与那里显示的相同的值?

答案1

您可以使用 Powershell 的 Get-Item 来获取属性:

(Get-Item C:\Windows\Explorer.exe).VersionInfo.FileDescription

结果:
Windows Explorer

答案2

如果您不介意使用第三方工具,exiftool 可以完成这项工作:

exiftool -文件描述 c:\windows\explorer.exe

在此处输入图片描述

答案3

您可以使用 PowerShell 访问该文件的元数据属性。

您可以将以下脚本存储在.ps1文件中并在 PowerShell 会话中执行,以获取文件描述:

$path = 'C:\windows\explorer.exe'
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
$shellfolder.GetDetailsOf($shellfile, 34)

运行此脚本将执行以下操作:

PS C:\Temp> .\test.ps1
Windows Explorer

如果您希望列出所有可能的属性及其 ID,请将上述脚本的最后一行替换为:

0..287 | Foreach-Object { '{0} = {1}' -f $_, $shellfolder.GetDetailsOf($null, $_) }

并运行它,例如,使用 PowerShell 命令:

.\test.ps1 | Out-File C:\Temp\f.txt

这将产生类似以下内容的输出:

0 = Name
1 = Size
2 = Item type
3 = Date modified
4 = Date created
5 = Date accessed
6 = Attributes
7 = Offline status
etc.

参考 : 在 PowerShell 中枚举文件属性

答案4

在 Powershell 中使用以下 cmdlet:

(Get-Item C:\Windows\Explorer.exe).VersionInfo | select FileDescription

FileDescription
---------------
Windows Explorer

相关内容