Как сохранить текст из окна батника в txt файл?

Код батника (определяю разрешение видеофайла):
@echo off
for /f "tokens=3,4 delims=x" %%a in ('ffmpeg -i vidov_ska4ali_1.mp4 -hide_banner -v verbose ^| findstr /C:"Stream.*Video"') do set "width=%%a" & set "height=%%b"
echo Width: %width% Height: %height%


if not exist output.txt (
    checkresolution.bat > output.txt
)


TIMEOUT /T 100 /NOBREAK

pause


Выдаёт:
63e106a76880c431373436.png

Сохраняет только это:
Width:  Height: 

Время ожидания 100 сек., нажмите CTRL+C для выхода ... 99 98 97
Завершить выполнение пакетного файла [Y(да)/N(нет)]?


Да, я знаю что сохраняет только текст "рождённый" батником а не от ffmpeg, но как сохранить так же и текст от ffmpeg в текстовый документ?
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Чтоб сохранить текст от ffmpeg надо делать так:
ffmpeg -i vidov_ska4ali_1.mp4 -hide_banner -v verbose >output.txt

Чтоб не запускать ffmpeg 2 раза я бы рекомендовал следующую схему:
ffmpeg -i vidov_ska4ali_1.mp4 -hide_banner -v verbose >ffmpeg_out.txt
for /f "tokens=3,4 delims=x" %%a in ('type ffmpeg_out.txt ^| findstr /C:"Stream.*Video" ') do (
  set "width=%%a"
  set "height=%%b"
)
( type ffmpeg_out.txt & echo Width: %width% Height: %height%) >output.txt
del /f/q ffmpeg_out.txt

Т.е. через промежуточный файл, в котором сохраняется вывод ffmpeg.
У вас значения width и height пустые, это значит, что скорее всего не правильно отрабатывает фильтр findstr, или "токенизация" в цикле.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Valonir
for ....... "height=%%b" > output.txt
.
.
checkresolution.bat >> output.txt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы