这是代码...
@echo off
:: set paths (no quotes)
set ffmpeg=F:\Video\Ffmpeg\ffmpeg.exe
set infolder=F:\Downloads
set outfolder=F:\Video\Finished
@echo.
@echo on
for %%f in (%infolder%\*.mp4) do "%ffmpeg%" -i "%%~dpnf.mp4" -c copy "%outfolder%\%%~nf.mp4"
@echo off
if errorlevel 1 pause
@echo.
此代码将 mpeg-dash 文件转换为 mp4。 mpeg-dash 是一种流文件格式。
输入和输出文件如下所示:“文件名 - DASH_V.mp4”。 (无引号)
我希望输出文件删除“-DASH_V”,因此它看起来像“filename.mp4”。 (无引号)
如有任何帮助,我们将不胜感激。可能是一个快速修复,例如将“%%~dpnf~-13.0.mp4”更改为最后一个命令,但如您所见,我对语法一无所知。
尝试了一百万件事却一事无成。对语法一窍不通。
您不能直接更改
for
变量的文件名。您可以替换或删除普通CMD变量中的子字符串,但要在此处使用此类子字符串,您需要使用!
而不是%
进行“延迟扩展”,大致如下:
setlocal enabledelayedexpansion
for %%f in (%infolder%\*.mp4) do (
set "temp=%~nf"
"%ffmpeg%" -i "%%~dpnf.mp4" -c copy "%outfolder%\!temp: - DASH_V=!.mp4"
)
endlocal
或者你可以用
for ... do ( set ... & "%ffmpeg" ... )
压缩一条线
顺便说一句,您可以使用
%%~dpnf.mp4
而不是 %%f
——由 for
找到的全名。