我想获取文件夹及其子文件夹中所有视频文件(MTS 或 MP4 格式)的 csv 列表。我需要包含路径、文件大小和视频持续时间的名称。
我曾使用此 PowerShell 脚本成功地从主文件夹和子文件夹中获取所有文件的列表。但是这个脚本没有获取我可以从中提取持续时间的视频文件元数据。
Get-ChildItem D:\'My Source Folder' -Recurse | where {!$_.PSIsContainer} | select-object FullName, LastWriteTime, Length | export-csv -notypeinformation -path C:\results_file.csv | % {$_.Replace('"','')}
我完全不熟悉 PowerShell 脚本,所以我不知道如何获取视频文件元数据。
注意:我知道 select-object * 获取文件的所有属性,但不幸的是,它也没有仅针对视频文件的持续时间。
我还找到了this answer ,但我需要所有子文件夹中所有文件的列表,并导出到 csv。
最佳答案
这段代码应该有帮助
$Directory = "D:\My Source Folder"
$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]@{
Name = $_.Name
Size = "$([int]($_.length / 1mb)) MB"
Duration = $Duration
}
} | Export-Csv -Path "./temp.csv" -NoTypeInformation
关于PowerShell 获取视频持续时间并递归列出所有文件,导出为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58830853/