@echo off SetLocal EnableDelayedExpansion title %~n0 if "%~1"=="" ( echo ERROR: NO INPUT & echo  & pause & goto :eof ) else ( if NOT "%cd%\"=="%~dp1" cd /d "%~dp1" ) :: path to ffmpeg set "ffmpeg=C:\ffmpeg\bin\ffmpeg.exe" :: default output subfolder. change to "subfolder=" to disable set "subfolder=mkv" :: extension set "ext=mkv" :EnterPath set p= echo. set /p p="output path (default %subfolder%) " for %%F in ("!p!") do ( set "outfolder=%%~dpnF" set openfolder = true goto :ConformPath ) :ConformPath if "!outfolder!"=="" ( for %%A in (%subfolder%) do ( set "outfolder=%subfolder%\" goto :Checkoutfolder ) ) else ( if not "!outfolder:~-1!"=="\" ( if "!outfolder:~-1!"=="/" set "outfolder=!outfolder:~0,-1!" set "outfolder=!outfolder!\" ) ) :Checkoutfolder if not "!outfolder!"=="" ( if not exist "!outfolder!" mkdir "!outfolder!") :CountFiles for %%F in (%*) do ( if "!total!"=="" ( set total=1) else ( set /a total=!total!+1)) :ProcessFiles for %%F in (%*) do ( set filters= if "!current!"=="" ( set current=1) else ( set /a current=!current!+1) title %~n0^: ^> !current!/!total! "%%~nxF" echo. & echo ^> !current!/!total! "%%~F" "%%~nF.%ext%" set "postfix=" if exist "!outfolder!\%%~nF.%ext%" CALL :Addpostfix "!outfolder!\%%~nF.%ext%" :ffmpeg "%ffmpeg%" -i "%%~F" -c copy "!outfolder!%%~nF!postfix!.%ext%" ) title %~n0^: ^> COMPLETED if defined openfolder explorer "!outfolder!" timeout /t 10 goto :eof :Addpostfix :: add numeric postfix to files if already exist for /L %%N in (1,1,1000) do ( if not exist "%~dpn1_%%N%~x1" ( set "postfix=_%%N" & goto :eof )) goto :eof