6

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

在此处输入图像描述

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

所以我可能需要两件事:

a) 访问和更新 MP3 类型文件的 ID3 信息的方法 b) 访问 WMA 和 WAV 的文件属性(在 Windows 级别)的方法;如果这种方法也适用于 MP3,那就太好了

有人有什么想法吗?我知道这在 C# 中是可能的,但现在这有点过头了,因为我更习惯于编写脚本。如果需要在适当的编译程序中完成,那就这样吧,但希望有一种方法可以在 shell 中完成。

4

1 回答 1

6

这里下载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()   
}

希望能帮助到你。

于 2017-07-25T09:03:11.967 回答