PowerShell的编辑元数据,需要跟踪号码前加前导零的1-9

问题描述:

我使用这个模块,叫做MPTag,在PowerShell中:http://powershell.com/cs/media/p/9129.aspxPowerShell的编辑元数据,需要跟踪号码前加前导零的1-9

它用于编辑音轨的元数据。它工作的很好,但我需要添加前导0来跟踪数字,它不接受前导零。它只保存没有前导零的整数。

我目前使用的是:

$songmeta = get-mediainfo $song 
$song.track = 01 
$song.save() 

我也尝试添加.tostring,但它仍然出来不为零。任何人有任何想法我可以做到这一点?我对脚本非常陌生,所以我无法真正理解链接到下载页面的taglib源代码档案。有什么办法可以让这些前导零进入吗?如果没有,有没有人知道任何其他元数据编辑方法,将工作?谢谢你的帮助。

编辑:我发现解决方法是使用FFMPEG的元数据编辑器。它允许您编写前导零。更多信息on this wiki page.

+1

该库可能不支持您正在尝试执行的操作。如果我不得不猜测,它会在内部为该字段使用数字,并使用默认的'toString()'进行写入。您可能可以修改[源代码](http://taglib-sharp.sourcearchive.com/)来执行您想要的操作。 –

+1

我想尝试的一件事就是使用引号强制数据类型为字符串,看看是否有帮助。 '$ song.track =“01”' –

+0

我试过报价,不好,不幸。但感谢您的建议。我将如何开始编辑源代码?我是否在电脑上下载了该库?或者我只是编辑模块本身的.dll文件?编辑:没关系只是注意到.dll随库而来。我会检查它,看看是否有什么明显的我可以改变。 –

我目前使用的是Split功能。它可能不是你正在寻找的,但它应该是一个90%的解决方案。丢失我的RAID后,我必须撕掉所有的CD。

Example file: 01 - Song.mp3 
$files = get-childitem "your_directory" -filter *.mp3 
foreach($a in $files) 
{ 
    $b = $a.basename.Split(' - ') 
    $c = '0'+$b[0]+' - '+$b[1]+$a.extension 
    Rename-Item $a.Fullname -NewName $c 
}