У мене запущений пакетний файл, щоб використовувати 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