在Powershell中访问音乐文件元数据

时间:2017-07-25 08:55:56

标签: c# powershell audio id3 file-properties

因此,在从一台PC /硬盘驱动器复制到下一台PC /硬盘驱动器之间的这些年里,我的音乐收藏有点混乱,所以我想以编程方式浏览每一个并在下面的屏幕截图中更新文件元数据(从右键单击>文件属性):

finally released

有些文件是MP3,所以我知道ID3可以在那里使用(我曾尝试使用Get-Content查看ID3标签所在的最后128个字节,但只有一些小位显示为可读文本,假设这是因为它是一个二进制文件,需要以某种特定方式解码/解析)。大约相同的数字是WMA(相当旧的编解码器版本,可能是7或8),有些是未压缩的WAV。

所以我可能需要两件事:

a)访问和更新MP3类型文件的ID3信息的方法 b)访问WMA和WAV的文件属性(在Windows级别)的方法;如果这种方法对MP3来说也很有意义

有人有任何想法吗?我知道这在C#中是可行的,但现在我已经有点过头了,因为我更习惯于编写脚本。如果它需要在一个正确的编译程序中完成,那么就是它,但希望有一种方法可以在shell中完成它。

1 个答案:

答案 0 :(得分:2)

HERE下载 tagsharp.dll

有一个单独的模块可用于修改任何元数据,如:

get-childitem mylocal.mp3 | set-album "MyLocalAlbum"

或类似的东西:

$files = Get-ChildItem D:\Folder -include *.mp3 -recurse 
[System.Reflection.Assembly]::LoadFile("C:\TagLibDirectory\taglib-sharp.dll" ) 

foreach($iFile in $files) 
{ 
    $iFile.fullname    
    $mediaFile=[TagLib.File]::Create($iFile.fullname)    
    $mediaFile.Tag.Album = $iFile.Directory.Name 
    $mediaFile.Tag.AlbumArtists=$iFile.Directory.Name 
    $mediaFile.Save()   
}

希望它有所帮助。