Почему не работают переменные в bat файле?

В общем, вот такой батник

::исходный и результирующий файлы
set src = %1
set out = %2

::стартовые секунда, минута и час
set /a sh = %3
set /a sm = %4
set /a ss = %5

::конечные секунда, минута и час
set /a eh = %6
set /a em = %7
set /a es = %8

if %ss% LSS %es% (
    set /a ts = %es% - %ss%
) else (
    set /a ts = 60 - %ss% + %es%
)

if %sm% LSS %em% (
    set /a tm = %em% - %sm%
) else (
    set /a tm = 60 - %sm% + %em%
)

set /a th = %eh% - %sh%

ffmpeg.exe -ss 3 -i %src% -c:a copy -c:v copy -map 0 -y -t 5 %out%


До последней строчки вроде все нормально, ошибок не выдает. Соль в том, что в последней строчке вместо %src% и %out% не подставляются значения. В командной строке появляется
ffmpeg.exe -ss 3 -i -c:a copy -c:v copy -map 0 -y -t 5
То есть дырки на тех местах, где должны быть значения этих переменных.ea099e9d764e48e3bb406cafceae1c27.jpg

Пытаюсь вывести на экран echo %out% , пишет "Режим вывода на экран (ECHO) включен" вместо того, чтобы показать содержимое переменной out.
  • Вопрос задан
  • 2229 просмотров
Решения вопроса 1
@Olgeir
убери перед и после = -+ пробелы.
не
set src = %1
а
set src=%1

не
set /a th = %eh% - %sh%
а
set /a th=%eh%-%sh%

и всё будет работать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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