Powershell 请参见文件上的元数据变量名称(Windows 10)
我很难定义这个问题,但基本上我想知道的是“连接到文件元数据的符号变量名是什么(最好是在Windows安装上)”。Powershell 请参见文件上的元数据变量名称(Windows 10),powershell,windows-10,metadata,file-extension,Powershell,Windows 10,Metadata,File Extension,我很难定义这个问题,但基本上我想知道的是“连接到文件元数据的符号变量名是什么(最好是在Windows安装上)”。 例如,以.mp3文件为例,检查其属性会生成标题、比特率、文件夹路径等描述。我想知道的是程序看到的字段的名称(即Title->Title,Bit Rate->Bit_Rate等),如果有意义的话,因为我一直在尝试索引一些文件,我想收集尽可能多的关于它们的信息。我不相信元数据中有“符号名”这样的东西,尤其是与PowerShell无关。我怀疑Windows支持一定数量的流行格式,并通过资源
例如,以
.mp3
文件为例,检查其属性会生成标题、比特率、文件夹路径等描述。我想知道的是程序看到的字段的名称(即Title->Title,Bit Rate->Bit_Rate等),如果有意义的话,因为我一直在尝试索引一些文件,我想收集尽可能多的关于它们的信息。我不相信元数据中有“符号名”这样的东西,尤其是与PowerShell无关。我怀疑Windows支持一定数量的流行格式,并通过资源管理器提供查看和有时编辑这些格式的功能。我还没有找到一个来源来证明这一理论,但研究间接地支持了这一理论:有几十个关于如何在PowerShell中检索文件元数据的搜索结果,它们似乎都提出了大致相同的方法(例如):使用Shell对象来收集信息
既然你给这个PowerShell贴上了标签,下面是我对将它浓缩到基本要素的看法:
$path = 'C:\temp\file.txt' # pick a path
$parent = Split-Path -Parent $path # get the directory
$shell = New-Object -ComObject Shell.Application # get ourselves a shell
$folder = $shell.NameSpace($parent) # get a "folder namespace"
$file = $Folder.Items() | where { $_.Path -eq $path } # get the file itself from the folder
$count = 0 # zero our iterator
$object = New-Object PSObject # make a fresh object to hold our output
While ($folder.GetDetailsOf($folder.Items, $count) -ne "") { # iterate over the available metadata tags for the folder, and for each one get the value from the file
$object | Add-Member -Force NoteProperty ($folder.GetDetailsOf($folder.Items, $count)) ($folder.GetDetailsOf($file, $count))
$count += 1
}
Write-Output $object
请注意,给定文件的可用属性显然不是任何文件可能支持的所有属性,此外,也不一定是“符号名”。我怀疑查询shell对象的过程会导致它检查文件夹中的文件并提取Windows可以识别的元数据——它甚至可能根据为文件夹选择的视图类型(照片、音乐、文档等)来执行此操作
至于编写信息,这可能是通过同一个shell对象实现的,但我还没有探讨过这个选项。这可能取决于具体的格式:对于mp3,您可能需要一个库来查看/编辑特定于mp3的元数据。这与我想要的不完全一样,但我想这更像是我的问题提出得不好。非常感谢,无论如何,这似乎对我想做好的其他事情有用。我想很难解释清楚我想要的是什么,因为这更像是一个依赖于坚果的问题,但我想我可以解决这个问题。