решение1
Насколько мне известно, CMD не имеет возможности без использования скриптов WScript извлекать атрибуты метаданных, такие какПродолжительность,Композиторы, илиСкорость передачи данных. Однако,PowerShellпредоставляет ли возможностьдля сбора этой информации.
Следующий сценарий, адаптированныйиз StackOverflow, вбежатьPowerShell, рекурсивно сканирует папку и передаетПапка,Имя файлаиПродолжительностьв CSV.
$Directory = "E:\Audio Files\_.mp3\Albeniz, Isaac"
$Shell = New-Object -ComObject Shell.Application
Get-ChildItem -Path $Directory -Recurse -Force | ForEach
{
$Folder = $Shell.Namespace($_.DirectoryName)
$File = $Folder.ParseName($_.Name)
$Duration = $Folder.GetDetailsOf($File, 27)
[PSCustomObject]@{
Folder = $_.DirectoryName
Name = $_.Name
Duration = $Duration}} | Export-Csv -Path "C:/temp/out.csv" -NoTypeInformation
Он создает CSV-файл, показанный ниже.
При необходимости измените скрипт, указав местоположение файлов и отобразив или скрыв метаданные.
решение2
Использоватьffprobe.exe (FFmpeg)в цикле внутри вашей папки, где находятся файлы, которые вы хотите перечислить
@echo off
cd /d "D:\Path\To\mp4\Videos\Folder\"
set "_ffprobe=C:\Program Files\FFmpeg\Bin\ffprobe.exe"
for /R %%I in (*.mp4)do @for /f eol^=^|delims^=. %%i in ('
@"%_ffprobe%" -i "%%~fI" -show_entries format^=duration -v quiet ^
-of csv^="p=0" -sexagesimal^|findstr/e .[0-9]')do echo\"%%~nxI",'0%%~i>>".\file.csv"