【问题标题】:Powershell editing metadata, need leading zero before track numbers 1-9Powershell 编辑元数据,轨道号 1-9 前需要前导零
【发布时间】:2016-05-24 19:29:37
【问题描述】:

我在 Powershell 中使用这个名为 MPTag 的模块:http://powershell.com/cs/media/p/9129.aspx

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

我目前使用的是:

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

我也尝试添加.tostring,但它仍然没有零。有人知道我该怎么做吗?我对脚本很陌生,所以我无法真正理解下载页面上链接到的 taglib 源存档。有什么办法可以让这些前导零进入?如果没有,是否有人知道任何其他可行的元数据编辑方法?感谢您的帮助。

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

【问题讨论】:

  • 该库可能不支持您尝试执行的操作。如果我不得不猜测,它会在该字段内部使用数字,并使用默认的 toString() 进行写入。你也许可以修改the source code 来做你想做的事。
  • 我会尝试的一件事是使用引号将数据类型强制为字符串,看看是否有帮助。 $song.track = "01"
  • 我试过引号,不幸的是,不好。但感谢您的建议。我将如何开始编辑源代码?我的电脑上下载了这个库吗?还是我只是编辑模块本身的 .dll ?编辑:没关系只是注意到库附带了 .dll。我会检查一下,看看是否有什么明显可以改变的地方。
  • 我创建了一个新问题,因为我认为我已经进入了一个全新的讨论世界。如果您对编辑源代码有任何了解,请随时帮助我!感谢您的帮助@RyanBemrose

标签: powershell audio metadata taglib-sharp


【解决方案1】:

我目前使用的是拆分功能。它可能不是您正在寻找的,但它应该是 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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 2011-07-17
    • 2014-02-14
    • 1970-01-01
    • 2014-01-01
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多