首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell MediaInfo读取dir中的文件

Powershell MediaInfo读取dir中的文件
EN

Stack Overflow用户
提问于 2013-11-18 11:01:53
回答 2查看 2.4K关注 0票数 0

我有点像一个Powershell新手,我已经有意识地将PS作为我的主要脚本语言使用了大约6个月。

我试图生成一个基本脚本,只使用powershell和mediainfo来解析目录(输入)中的文件到单个.txt文件的另一个目录(输出)的详细信息(理想情况下删除原始文件扩展名)。

源文件名和输出文件名应该相同,例如:test.mp4 -> test.txt。以下是我迄今为止所做的工作:

代码语言:javascript
复制
$indir = "C:\Temp\input"
$outdir = "C:\Temp\output\"
$mediainfo = "C:\Temp\MediaInfo_CLI_x64\MediaInfo.exe "

$files = Get-ChildItem $indir

foreach ($file in $files )
    {
    Write-Host "Scanning " $file.FullName
    Start-Process $mediainfo $file.FullName -NoNewWindow | out-file $outdir $file.Name
    }

我遇到了很多问题,我觉得解决方案很简单。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-18 12:09:41

Start-Process具有重定向STDIN、STDOUT和STDERR的参数,因此尝试如下:

代码语言:javascript
复制
Start-Process $mediainfo $file.FullName -NoNewWindow -Wait `
    -RedirectStandardOutput "$outdir\$($file.Name).txt"

不过,通常您会使用call operator (&)启动外部程序,这应该允许您使用常规输出流:

代码语言:javascript
复制
& $mediainfo $file.FullName | Out-File "$outdir\$($file.Name).txt"

如果程序没有写入成功输出流(STDOUT),您可以像这样重定向其他流(详见重定向 ):

代码语言:javascript
复制
& $mediainfo $file.FullName *>&1 | Out-File "$outdir\$($file.Name).txt"
票数 1
EN

Stack Overflow用户

发布于 2016-09-15 01:52:31

我已经为MediaInfo编译了一个DLL包装器,所以您可以像这样在PowerShell中使用它

代码语言:javascript
复制
add-type -path 'C:\Users\username\Documents\WindowsPowerShell\vise_mediainfo.dll'
$MediaInfo = New-Object VISE_MediaInfo.MediaInfo
#Display all codec info about this PC
$MediaInfo.Option("Info_Codecs")
#Display information about a specific file
$MediaInfo.Open('C:\Users\username\Videos\video_name.mp4')
$MediaInfo.Inform()

https://ianmorrish.wordpress.com/v-ise/mediainfo/下载

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20046147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档