如何在Windows 10中将文件元数据(含音频时长)导出至电子表格?
导出Windows文件夹文件属性(含音频时长)到电子表格的方法
方法一:使用PowerShell(Windows自带,无需额外工具)
PowerShell可直接读取文件扩展属性(包括音频时长),导出为CSV格式后可直接用Excel打开。
- 打开PowerShell:按下Win+X,选择「Windows PowerShell」或「终端」(Win10后期版本)。
- 导航到目标文件夹:执行命令
cd "你的文件夹路径",例如cd "D:\Music\个人收藏"。 - 运行以下命令导出属性:
$shell = New-Object -ComObject Shell.Application Get-ChildItem -File | ForEach-Object { $folder = $shell.Namespace($_.DirectoryName) $file = $folder.ParseName($_.Name) [PSCustomObject]@{ 文件名 = $_.Name 文件路径 = $_.FullName 大小(字节) = $_.Length 创建日期 = $_.CreationTime 修改日期 = $_.LastWriteTime 音频时长 = $folder.GetDetailsOf($file, 27) # 部分系统可能需改为28,若为空可调整索引 文件类型 = $folder.GetDetailsOf($file, 11) } } | Export-Csv -Path "文件属性导出.csv" -Encoding UTF8 -NoTypeInformation
- 索引说明:属性索引可能因系统区域设置有差异,若音频时长为空,可执行
for ($i=0; $i -lt 300; $i++) { $folder.GetDetailsOf($folder.Items, $i) + " : " + $i }列出所有属性对应的索引值,替换代码中的数字即可。
- 导出完成后,在当前文件夹找到
文件属性导出.csv,双击即可用Excel打开。
方法二:使用Excel VBA宏
适合熟悉Excel操作的用户,通过宏直接在Excel中生成属性表格。
- 打开Excel,新建空白工作簿。
- 按下
Alt+F11打开VBA编辑器。 - 右键左侧工作簿名称,选择「插入」→「模块」。
- 将以下代码粘贴到模块窗口:
Sub 导出文件属性() Dim objShell As Object, objFolder As Object, objFile As Object Dim ws As Worksheet, rowNum As Integer Dim folderPath As String ' 选择目标文件夹 With Application.FileDialog(msoFileDialogFolderPicker) .Title = "选择要导出属性的文件夹" If .Show = -1 Then folderPath = .SelectedItems(1) Else Exit Sub End With End With ' 创建新工作表并写入表头 Set ws = ThisWorkbook.Sheets.Add ws.Name = "文件属性" ws.Cells(1, 1) = "文件名" ws.Cells(1, 2) = "文件路径" ws.Cells(1, 3) = "大小(字节)" ws.Cells(1, 4) = "创建日期" ws.Cells(1, 5) = "修改日期" ws.Cells(1, 6) = "音频时长" ws.Cells(1, 7) = "文件类型" rowNum = 2 ' 遍历文件夹内文件并写入属性 Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(folderPath) For Each objFile In objFolder.Items If objFile.IsFile Then ws.Cells(rowNum, 1) = objFile.Name ws.Cells(rowNum, 2) = objFile.Path ws.Cells(rowNum, 3) = objFile.Size ws.Cells(rowNum, 4) = objFile.DateCreated ws.Cells(rowNum, 5) = objFile.DateLastModified ws.Cells(rowNum, 6) = objFolder.GetDetailsOf(objFile, 27) ' 音频时长索引,同PowerShell说明 ws.Cells(rowNum, 7) = objFolder.GetDetailsOf(objFile, 11) rowNum = rowNum + 1 End If Next ' 自动调整列宽 ws.Columns.AutoFit MsgBox "导出完成!", vbInformation End Sub
- 按下
F5运行宏,选择目标文件夹后等待完成,Excel会自动生成属性工作表。
- 注意:若宏被禁用,可通过「文件→选项→信任中心→信任中心设置→宏设置」临时启用所有宏,操作完成后建议改回默认设置。
常见问题说明
- 音频时长为空:可能是文件格式不被Shell识别(如小众音频格式),或属性索引错误,可尝试调整代码中的索引值。
- 大量文件处理:两种方法均支持批量操作,大文件夹处理需稍长时间,请耐心等待。
内容的提问来源于stack exchange,提问作者Diamaudix Audio Ltd.
相关产品推荐
相关产品推荐

