Powershell MediaInfo читает файлы в директории

Я новичок в Powershell, я целенаправленно использую PS в качестве основного языка сценариев уже около 6 месяцев.

Я пытаюсь сгенерировать базовый сценарий, используя только powershell и mediainfo для анализа деталей из файлов в каталоге (входных данных) в другой каталог (выходных данных) отдельных файлов.txt (в идеале с удаленными исходными расширениями файлов).

Имя файла источника и вывода должно быть одинаковым, например: test.mp4 -> test.txt, Вот что мне удалось до сих пор:

$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
    }

У меня много проблем, и я чувствую, что решение довольно простое.

Спасибо за любую помощь.

2 ответа

Решение

Start-Process имеет параметры для перенаправления STDIN, STDOUT и STDERR, поэтому попробуйте это:

Start-Process $mediainfo $file.FullName -NoNewWindow -Wait `
    -RedirectStandardOutput "$outdir\$($file.Name).txt"

Обычно вы запускаете внешние программы с оператором вызова (&), что должно позволить вам использовать обычные выходные потоки:

& $mediainfo $file.FullName | Out-File "$outdir\$($file.Name).txt"

Если программа не записывает в поток вывода успеха (STDOUT), вы можете перенаправить другие потоки следующим образом (подробнее см. About_Redirection):

& $mediainfo $file.FullName *>&1 | Out-File "$outdir\$($file.Name).txt"

Я скомпилировал оболочку DLL для MediaInfo, чтобы вы могли использовать ее в PowerShell следующим образом

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/

Другие вопросы по тегам