在 PowerShell 中,如果需要某個音訊或視訊檔案諸如標題、長度之類的資料,可以用:
- Windows 的 Shell.Application,
- MediaInfo
- Windows Search 的 index
其他像是用 ffprobe.exe 之類的方法,就不提了。
Windows Shell Application
這應該是最常見的方法,很簡單,取得的內容就是用檔案總管的右鍵,看到的「詳細內容」,方法如下:
$objFolder = (New-Object -ComObject Shell.Application).NameSpace('D:\temp\libmediainfo_AllInclusive\MediaInfoLib\Release\');
$objFile = $objFolder.ParseName("Example.ogg");
1..200 | foreach({
$v = $objFolder.GetDetailsOf($objFile,$_);
if ($v) {
"$($objFolder.GetDetailsOf($objFolder,$_)): $($objFolder.GetDetailsOf($objFile,$_))";
}
});
跑出來的結果:
大小: 4.74 KB 項目類型: OGM File 修改日期: 2018/3/27 00:22 建立日期: 2018/3/28 14:12 存取日期: 2018/3/28 14:12 屬性: A 認知類型: 音訊 擁有者: KEN-NB\Ken TWM 種類: 音樂; 視訊 評等: 未評等 標題: Test for Unicode (UTF-8) 長度: 00:00:09 大小總計: 235 GB 電腦: KEN-NB (本機) 副檔名: .ogg 檔名: Example.ogg 可用空間: 117 GB 分享: 否 資料夾名稱: Release 資料夾路徑: D:\temp\libmediainfo_AllInclusive\MediaInfoLib\Release 資料夾: Release (D:\temp\libmediainfo_AllInclusive\MediaInfoLib) 路徑: D:\temp\libmediainfo_AllInclusive\MediaInfoLib\Release\Example.ogg 類型: OGM File 連結狀態: UNRESOLVED
MediaInfo
先安裝MediaInfo,也可以只安裝 DLL,裡面要的只有 MediaInfo.dll 這個檔案,如果你有安裝 MediaInfo,那麼就直接用 C:\Program Files\MediaInfo\MediaInfo.dll 即可。
下載 libmediainfo 的 source,解開到你的硬碟去,重點是裡面的 MediaInfoLib\Source\MediaInfoDLL.css 這個檔案。
$MediaInfoDLLPath = """C:\\Program Files\\MediaInfo\\MediaInfo.dll""";
$MediaInfoDLLSource = "D:\temp\libmediainfo_AllInclusive\MediaInfoLib\Source\MediaInfoDLL\MediaInfoDLL.cs";
$MediaInfoTypeDefinition = $(Get-Content $MediaInfoDLLSource -Raw) -replace """MediaInfo.dll""",$MediaInfoDLLPath;
Add-Type -TypeDefinition $MediaInfoTypeDefinition -Language CSharp;
$MediaInfo = [MediaInfoLib.MediaInfo]::new();
[void]$MediaInfo.Open("D:\temp\libmediainfo_AllInclusive\MediaInfoLib\Release\Example.ogg");
$MediaInfo.Inform();
$MediaInfo.Close();
跑出來的結果:
General Complete name : D:\temp\libmediainfo_AllInclusive\MediaInfoLib\Release\Example.ogg Format : Ogg File size : 4.74 KiB Overall bit rate mode : Variable Track name : Test for Unicode (UTF-8) ARABIC : ئابةتثجحخدذرزسشصضطظعغـف HEBREW : אבגדהוזחטיךכלםמןנסעףפץצְֱ COMBINERS : ˆˇˉ˘˙˚˛˜̣̀́̃̉ CYRILLIC : ЁЂЃЄЅІЇЈЉЊЋЌЎЏ ENGLISH : abcdefghaijklmnopqrstuvwxyz FRENCH : aàäâåáãæÅÆ cçÇ eéèëê uùüû GREEK : αβγδεζηθικλμνξοπρςστυφχψω LATIN : ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņ Audio ID : 18077 (0x469D) Format : Vorbis Format settings, Floor : 1 Bit rate mode : Variable Bit rate : 128 kb/s Channel(s) : 2 channels Sampling rate : 44.1 kHz Compression mode : Lossy Writing library : libVorbis 1.0.1 (CVS) (UTC 2003-03-08)
就那麼簡單。
Windows Search
如果你要拿一大堆 audio 或 video 檔案的資料,無論是 Shell.Application 或 mediainfo.dll 都會有點慢,可以試試看 Windows 的 SYSTEMINDEX,這方法以後再介紹。