So I've long had this (original) CONCAT.BAT file:
Code: Select all
@ECHO OFF
ECHO CONCATenate all the parts of a multiple movie into one
ECHO "specs" should be the same, files listed in the correct order, 1 to X...
ECHO therube 01/23/2015
ECHO.
ECHO %*
ECHO.
pause
SET OUT=C:\OUT
ECHO OUT=: %OUT%
SET OFILE=%OUT%\%~n1_CONCAT%~x1
ECHO Output filename: "%OFILE%"
ECHO. > %OUT%\CONCAT1.TXT
PAUSE
echo FOR:
PAUSE
for %%i in (%*) do echo %%~i >> %OUT%\CONCAT1.TXT
cat %OUT%\CONCAT1.TXT
PAUSE
sed -f %OUT%\sed_go1 < %OUT%\CONCAT1.TXT > %OUT%\CONCAT2.TXT
cat %OUT%\CONCAT2.TXT
PAUSE
sed -f %OUT%\sed_go2 < %OUT%\CONCAT2.TXT > %OUT%\CONCAT3.TXT
cat %OUT%\CONCAT3.TXT
PAUSE
ffmpeg -f concat -safe 0 -i %OUT%\CONCAT3.TXT -c copy "%OFILE%"
And it too has long had an issue with '&' in filenames.
No big deal, I remove the & in the name, run the CONCAT, then put the & back in.
But lately, I've run into a bunch of files with & in their names.
So I start looking through the code & it turns out that it is my quoting that was causing that issue.
14,15c14,15
< SET OFILE="%OUT%\%~n1_CONCAT%~x1"
< ECHO Output filename: %OFILE%
---
> SET OFILE=%OUT%\%~n1_CONCAT%~x1
> ECHO Output filename: "%OFILE%"
37c37
< ffmpeg -f concat -safe 0 -i %OUT%\CONCAT3.TXT -c copy %OFILE%
---
> ffmpeg -f concat -safe 0 -i %OUT%\CONCAT3.TXT -c copy "%OFILE%"
(I've never been good with DOS batch files, in particular with % & %% & "'s...
But at least it looks like I've got CONCAT worked out
.)
(revised) CONCAT.BAT
Code: Select all
@ECHO OFF
ECHO CONCATenate all the parts of a multiple movie into one
ECHO "specs" should be the same, files listed in the correct order, 1 to X...
ECHO therube 01/23/2015 adjust quoting to fix filenames with '&' 11/24/2018
ECHO.
ECHO %*
ECHO.
pause
SET OUT=C:\OUT
ECHO OUT=: %OUT%
SET OFILE="%OUT%\%~n1_CONCAT%~x1"
ECHO Output filename: %OFILE%
ECHO. > %OUT%\CONCAT1.TXT
PAUSE
echo FOR:
PAUSE
for %%i in (%*) do echo %%~i >> %OUT%\CONCAT1.TXT
cat %OUT%\CONCAT1.TXT
PAUSE
sed -f %OUT%\sed_go1 < %OUT%\CONCAT1.TXT > %OUT%\CONCAT2.TXT
cat %OUT%\CONCAT2.TXT
PAUSE
sed -f %OUT%\sed_go2 < %OUT%\CONCAT2.TXT > %OUT%\CONCAT3.TXT
cat %OUT%\CONCAT3.TXT
PAUSE
ffmpeg -f concat -safe 0 -i %OUT%\CONCAT3.TXT -c copy %OFILE%
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.19) Gecko/20110420 SeaMonkey/2.0.14 Pinball NoScript FlashGot AdblockPlus
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.5