Итак, я использовал командную строку Handbrake для кодирования своей коллекции видео для хранения на моем NAS, чтобы я мог использовать ее на своем HTPC.Я искал способ вывода как на экран, чтобы я мог смотреть его вывод как кодирование, так и в файл, чтобы я мог вернуться и посмотреть на конкретный сеанс кодирования.
Мое решение для этогобыло использовать одно окно Powershell для запуска кодирования и вывода в файл, затем другое окно Powershell для чтения файла журнала и его отображения на экране.Это работает, но я хочу улучшить это, поскольку это не идеально.Поскольку скрипт чтения файла читает с заданным интервалом, он пропускает строки.Также, если я уменьшу интервал, это повлияет на производительность системы, делая кодирование более медленным.Есть ли способ, которым я могу перенаправить вывод первого окна как в файл, так и на экран?
Первый скрипт powershell (тот, который запускает кодировку) с именем "Convert1.ps1" (запускается изкаталог установки ручного тормоза):
net time \\ODIN |find "Current time"
./HandbrakeCLI.exe -i "<input file>" -o "<output file>" <handbrake parameters>
Второй сценарий powershell для вывода в файл с именем «Start_Convert.ps1»:
d:\Conversions\Convert.ps1 2>&1 | out-file d:\Conversions\Completed\Movies\9.29.2010.log
Третий сценарий powershell для чтения из этого файла журналас именем «Watch_Output.ps1»:
while (1)
{
(Get-Content d:\Conversions\Completed\Movies\9.29.2010.log)[-1]
Start-sleep 5
}
В идеале мне бы хотелось, чтобы все это было сведено к одному окну PowerShell, в котором запущен один сценарий для запуска кодирования, вывода в файл и его отображения.на экране.
Редактирование (добавление решения): 2 разных способа сделать это, я использую последний, так как это проще.
Способ № 1 - скрипт запуска задания вначать мои преобразования:
Start-Job -Name VideoConvert -ScriptBlock { d:\Conversions\Convert.ps1 2>&1 | out-file d:\Conversions\Movies\Movie.log }
Get-FileTail -Wait Encoding Unicode -Path D:\Conversions\Completed\Movies\Movie.log
Способ # 2 - Tee-Object Результирующий скрипт для запуска моих преобразований:
d:\Conversions\Convert.ps1 2>&1 |Tee-Object -File D:\Conversions\Completed\Movies\Movie.log
Еще раз спасибо всем.Это работает так же, как я хотел, чтобы это работало.