通过powershell在命令行中列出.wav文件的元数据

时间:2013-09-01 14:00:36

标签: powershell metadata powershell-v2.0 wav

我想在命令行中打印与wav文件目录关联的元数据列表,作为我正在构建的索引系统的一小部分。

大部分项目都是用PHP编写的,我很好。这部分需要PowerShell,因为带有wav文件的服务器上只有它。

我在网上找到了一些代码:

function funMetaData($folder)
{
foreach($sFolder in $folder)
 {
  $a = 0
  $objShell = New-Object -ComObject Shell.Application
  $objFolder = $objShell.namespace($sFolder)

  foreach ($strFileName in $objFolder.items())
   { FunLine( "$($strFileName.name)")
     for ($a ; $a  -le 266; $a++)
      { 
        if($objFolder.getDetailsOf($strFileName, $a))
          {
            $hash += @{ `
                  $($objFolder.getDetailsOf($objFolder.items, $a))  =`
                  $($objFolder.getDetailsOf($strFileName, $a)) 
                  } #end hash
           $hash
           $hash.clear()
          } #end if
      } #end for 
    $a=0
   } #end foreach
 } #end foreach
} #end funMetadata 

这不是我的,我测试了它,它接近我想要的。我希望能够只打印文件名,创建日期,修改日期和文件长度,我不知道从哪里开始打破这个。

有人可以指出我正确的方向,请给我几个例子吗?请记住,powershell对我来说是全新的,到目前为止,我发现它的语法本身非常“不同”。

2 个答案:

答案 0 :(得分:0)

不确定清楚地理解你的问题,但我认为你不需要那些东西。

$folder = 'c:\temp\test'

foreach ($file in (get-childitem $folder))
{
  $file.FullName
  $file.name
  $file.CreationTime
  $file.LastWriteTime
  $file.Length
}

答案 1 :(得分:0)

我假设wav文件与其他音频文件具有相同类型的元信息。我创建了一个博客条目,我使用名为taglib的第三方实用程序为PowerShell提取此信息。看看它是否符合您的脚本需求:ID3 Tag Editing