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

标签 c# powershell audio id3 file-properties

<分区>

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

enter image description here

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

所以我可能需要两件事:

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

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

最佳答案

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()   
}

希望对您有所帮助。

关于c# - 在 Powershell 中访问音乐文件元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298447/

相关文章:

javascript - 嵌套函数中的变量返回未定义

c# - Windows 窗体卡在多个异步任务上

c# - 在不启动 MSWord 的情况下读取 .doc 文件

c# - 按 ID 列表排序对象列表

c# - 如何使用 C# 获取 DefragAnalysis

android - 在 Android 中使用 HTML5 流式传输

java - Android:如何通过蓝牙连接传输视频和音频?

c# - XAML ListView ItemContainer 高度

regex - Powershell中的Regex无法检查换行符

powershell - 根据属性值获取通用/列表中对象的索引