我正在尝试使用 Powershell 列出我的一些 mp3 文件。
我努力了
ls C:\test | Format-List -Property Name,Length
这让我
Name : testfile.mp3
Length : 10058533
长度是文件的大小,目前我不关心这个。
我知道我可以在文件资源管理器中选择列标题的持续时间,所以我想将上面的内容重写为
ls C:\test | Format-List -Property Name,Duration
但我得到的是
Name : testfile.mp3
我如何告诉 Powershell 返回持续时间的分钟和秒数?或者甚至只是秒数。提前致谢
答案1
要获取 mp3 的长度,可能最简单的方法就是利用资源管理器使用的 Shell 对象。
恐怕我没有为您提供单行脚本,但您始终可以编写一个可供调用的脚本。
$path = 'M:\Musikk\awesome_song.mp3'
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
write-host $shellfolder.GetDetailsOf($shellfile, 27);
更多信息可以在这里找到: http://powershell.com/cs/blogs/tobias/archive/2011/01/07/organizing-videos-and-music.aspx
编辑:此方法是必要的,因为长度信息与文件的其他元数据一起存在。