liq*_*she 0 csv video powershell duration
我想获得一个文件夹及其子文件夹中所有视频文件(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('"','')}
Run Code Online (Sandbox Code Playgroud)
我对 PowerShell 脚本完全陌生,所以我无法弄清楚如何获取视频文件元数据。
注意:我知道 select-object * 获取文件的所有属性,但不幸的是,它也没有特定于视频文件的持续时间。
我也找到了这个答案,但我需要所有子文件夹中所有文件的列表,导出到 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
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2596 次  |  
        
|   最近记录:  |