4

Я пытаюсь перечислить некоторые из моих mp3 файлов с помощью Powershell.

я пытался

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 ответ1

6

Чтобы получить длину 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

Редактировать: причина, по которой этот метод необходим, заключается в том, что информация о длине находится вместе с другими метаданными файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .