O arquivo Bat falha quando o nome do arquivo possui espaços

1

Eu tenho esse arquivo em lote que processa alguns arquivos de vídeo em um lote. As coisas funcionam bem, desde que o nome do arquivo não tenha espaços em branco em seu nome. Se o nome do arquivo (test movie.avi) tiver espaço em branco, ele diz

test: No such file or directory

Então parece que está tratando o espaço como um separador. Como contornar este problema?

for %%a in (%1\*.avi) do (
   ffmpeg -i %%a -c:v libx264 -movflags +faststart -preset slow -crf 22 -b:v 500k -vf "scale=480:trunc(ow/a/2)*2" -threads 0 -c:a libfdk_aac -b:a 128k "%2/%%~na.mp4" -vf select="not(mod(n\,10))"
)

É assim que eu chamo isso:

Process.bat C:\FFMPEG\inputfiles C:\FFMPEG\outputfiles
    
por kheya 13.01.2014 / 02:52

1 resposta

3

Você precisa de algumas citações em torno de seu %% a na invocação do ffmpeg.

~ Editar: Adicionado Script Modificado

for %%a in (%1\*.avi) do (
   ffmpeg -i "%%a" -c:v libx264 -movflags +faststart -preset slow -crf 22 -b:v 500k -vf "scale=480:trunc(ow/a/2)*2" -threads 0 -c:a libfdk_aac -b:a 128k "%2/%%~na.mp4" -vf select="not(mod(n\,10))"
)
    
por 13.01.2014 / 07:34