Obtém a duração da música de um arquivo mp3 em um script?

4

Estou tentando listar alguns dos meus arquivos de mp3 com o Powershell.

Eu tentei

ls C:\test | Format-List -Property Name,Length

que me dá

Name   : testfile.mp3
Length : 10058533

O comprimento é o tamanho do arquivo que não me interessa neste momento.

Sabendo que posso escolher a duração no Explorador de Arquivos para um título de coluna que eu pensei reescreva os itens acima como

ls C:\test | Format-List -Property Name,Duration

mas o que obtenho é

Name   : testfile.mp3

Como posso dizer ao Powershell para retornar os minutos e segundos pela duração? Ou mesmo apenas os segundos. Agradecemos antecipadamente

    
por Darius 21.01.2014 / 00:03

1 resposta

6

Para obter o comprimento de um mp3, provavelmente a maneira mais fácil é fazer uso do que o explorador usa, um objeto Shell.

Eu tenho medo de não ter um verso para você, mas você sempre pode fazer um script que você chama.

$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); 

Mais informações podem ser encontradas aqui: link

Editar: o motivo pelo qual esse método é necessário é porque as informações de comprimento residem nos outros metadados do arquivo.

    
por 21.01.2014 / 00:51