【发布时间】:2018-02-21 12:42:55
【问题描述】:
我正在尝试使用taglib-sharp 和powershell 更新歌曲元数据。
它适用于大多数文件,但某些 wma 文件有错误(我可以播放这些文件)。
# Load the tag-lib assembly
[Reflection.Assembly]::LoadFrom( (Resolve-Path ("D:\zic\lib\taglib-sharp.dll")))
# Load up the song file and its metadata
$path_file="D:\zic\misc\Artist_Title.wma"
$song = [TagLib.File]::Create((resolve-path $path_file))
$file_name = [System.IO.Path]::GetFileNameWithoutExtension($path_file)
$file_name_array=$file_name.Split("_")
$artist=$file_name_array[0]
$title=$file_name_array[1]
#set the artist and title (metadata)
$song.Tag.Artists = $artist
$song.Tag.AlbumArtists = $artist
$song.Tag.Title = $title
# Save the metadata
$song.Save()
这是powershell 的问题吗? taglib-sharp 问题?
我正在使用taglib_sharp 2.0.50727 版和powershell 5.1.16299.248 版。
编辑
使用 try catch 来显示错误:
# Save the metadata
try
{
$song.Save()
}
catch [Exception]
{
Write-Host $_.Exception|format-list -force
}
控制台显示:
编辑 2
如果我手动编辑标签(右键单击文件-> 属性)或重命名文件,程序运行没有问题并且标签被更新。奇怪!
【问题讨论】:
-
喜欢
taglib-sharp的问题。检查$Error[0].Exception.StackTrace看看代码中的哪些地方都失败了 -
我刚刚用跟踪编辑了我的帖子。
-
我很确定这些文件实际上并没有命名为
Artist_Artists.wma对吗?查看引发异常的文件之一和不引发异常的文件的实际文件名。
标签: powershell metadata taglib-sharp