/ / Як керувати іменем вихідного файлу в пакетному файлі? - batch-file, ffmpeg

Як керувати іменем вихідного файлу в пакетному файлі? - пакетний файл, ffmpeg

У мене запущений пакетний файл, щоб використовувати FFMPEG для перетворення всіх файлів з розширенням * .MTS у каталог.

for %%A in (*.MTS) do ffmpeg -i "%%A" -vcodec copy -acodec pcm_s16le -ar 48000 -ac 2 "newfiles%%A.mov"
pause

Вихідні файли переходять до каталогу під назвою newfiles. Перетворення відбувається без проблем. Проблема полягає в тому, що якщо вхід є ім'ям файлу.MTS, вихід - ім'я файлу.MTS.mov

Як я можу змінити пакетний файл, щоб з введенням імені.MTS вихід був name.mov?

Відповіді:

2 для відповіді № 1

Крім нормальних for змінні циклу, ви також можете використовувати додатковий синтаксис для зміни результату. З виходу for /?:

%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I to a drive letter only
%~pI        - expands %I to a path only
%~nI        - expands %I to a file name only
%~xI        - expands %I to a file extension only
%~sI        - expanded path contains short names only
%~aI        - expands %I to file attributes of file
%~tI        - expands %I to date/time of file
%~zI        - expands %I to size of file

Тож у вашому випадку ви б використали newfiles%%~nA.mov