ffmpeg/batch 文件:输入格式保留在输出文件名中
ffmpeg/batch file: input format stays in output file name
我创建这个批处理文件是为了将一个目录中的所有 aac 文件放入一个 m4a 容器中。该命令到目前为止有效,但生成的每个新文件在输出文件名中都具有输入文件的格式。
例如:test(.aac) 在 m4a 容器中但被命名为 test.aac(.m4a)
这是 .bat 文件:
for /r %%X in (*.*) do (
ffmpeg -i "%%X" "%%X.m4a"
)
pause
如果有任何简单的解决方案,我将不胜感激,向大家致以最诚挚的问候和感谢
您只需要提取不带扩展名的名称
for /r %%X in (*.aac) do (
ffmpeg -i "%%X" "%%~dpnX.m4a"
)
参见 HELP FOR
了解 %%~dpn
语法的解释,简而言之
%%~X - expands %%X removing any surrounding quotes (")
%%~fX - expands %%X to a fully qualified path name
%%~dX - expands %%X to a drive letter only
%%~pX - expands %%X to a path only
%%~nX - expands %%X to a file name only
我还稍微更改了 FOR
选择掩码以仅遍历 .aac 文件。
我创建这个批处理文件是为了将一个目录中的所有 aac 文件放入一个 m4a 容器中。该命令到目前为止有效,但生成的每个新文件在输出文件名中都具有输入文件的格式。
例如:test(.aac) 在 m4a 容器中但被命名为 test.aac(.m4a)
这是 .bat 文件:
for /r %%X in (*.*) do (
ffmpeg -i "%%X" "%%X.m4a"
)
pause
如果有任何简单的解决方案,我将不胜感激,向大家致以最诚挚的问候和感谢
您只需要提取不带扩展名的名称
for /r %%X in (*.aac) do (
ffmpeg -i "%%X" "%%~dpnX.m4a"
)
参见 HELP FOR
了解 %%~dpn
语法的解释,简而言之
%%~X - expands %%X removing any surrounding quotes (")
%%~fX - expands %%X to a fully qualified path name
%%~dX - expands %%X to a drive letter only
%%~pX - expands %%X to a path only
%%~nX - expands %%X to a file name only
我还稍微更改了 FOR
选择掩码以仅遍历 .aac 文件。