2016-12-24 2 views
0

Я запускаю командный файл, чтобы использовать 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?

+3

«NewFiles \ %% ~ nA.mov» – elzooilogico

+0

Помогает, если вы читаете документацию для команд, которые вы пытаетесь использовать , – Squashman

ответ

2

В дополнение к нормальным переменным цикла 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