@YaroslavKleyno

Почему не обрабатывается переменная времени в batch-файле?

Добрый день! Суть такова: нужно накладывать на видеопоток текущее системное время.
Не получается.
Когда запускаю через cmd - работает:
mpv.exe --geometry=0:0 --autofit=960x540 --ontop --no-border --lavfi-complex=[aid1]asplit[ao][a];[a]showvolume=o=v:w=1000:h=60:r=50:b=5:f=0.001[a1];[vid1]drawtext=fontfile='C\:\\Windows\\Fonts\\Arial.ttf':fontsize=90:fontcolor=white:text='%{localtime\:%X}'[vout1];[vout1]drawtext=fontfile='C\:\\Windows\\Fonts\\Arial.ttf':text='online-ru-hotbird-high':fontcolor=white:fontsize=72:box=1:boxcolor=black:x=720:y=10[vout1];[vout1]drawtext=fontfile='C\:\\Windows\\Fonts\\Arial.ttf':timecode='00\:00\:00\:00':rate=24/1.001:fontsize=72:fontcolor=white:boxcolor=0x000000AA:box=1:x=main_w/2-text_w/2:y=main_h-text_h-20:boxborderw=10[vout2];[vout2][a1]overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)[vo] --alpha=no stream.mp4


Когда запускаю из batch-файла - не работает.
Не работает потому что исполняется не в среде cmd и не работает переменная '%{localtime\:%X}'
Подскажите, как победить?
  • Вопрос задан
  • 162 просмотра
Решения вопроса 2
Moskus
@Moskus
В batch-файлах символ процента должен экранироваться. Посмотрите внимательно, какая команда действительно исполняется из batch - там будут пропущены проценты (оба, или только один). Те, которые пропущены, нужно удвоить.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
1. На счет символов % Moskus правильно сказал, их нужно удваивать в батниках, чтоб они сохранились в параметре программы. Плюсую. Думаю, что проблема именно в этом.
2. Батники всегда исполняются в среде cmd. Собственно это cmd.exe является интерпретатором командных файлов (.bat и .cmd). Даже когда вы в проводнике запускаете батник двойным ЛКМом, проводник вызывает cmd.exe для исполнения скрипта. В этом легко убедится с помощью менеджера задач.
3. Переменной %{localtime\:%X} в cmd никогда не было.
Это легко проверить введя команду set в cmd, она выдаст список всех переменных окружения. Это внутренняя переменная mvp, отношения к cmd не имеет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ezhyg
@Ezhyg
Почему вместо кавычек в путях апострофы?
Почему пути указаны... через какую-то жопу вида C\:\\?

drawtext="fontfile=%Windir%/Fonts/arial.ttf:fontsize=90:fontcolor=white:text='%{localtime\:%X}'"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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