Por que isso não funciona no comando BATCH, FOR? Standallone funciona

1

Eu quero exportar imagens de filmes, como miniaturas, estou usando ffmpeg . Meu comando em lote:

DEL *.jpg

setlocal
dir *.mp4 /a:-d /b > foldersTemp.txt
FOR /f %%A IN (foldersTemp.txt) DO ffmpeg -i %%A -vf fps=1/200 %%Athumb%04d.jpg
endlocal

DEL foldersTemp.txt

mas cria apenas um por filme. Se eu usar o comando ffmpeg , ele funciona. Eu tenho medo que o % confunda o comando

    
por John Smith 10.09.2015 / 20:40

1 resposta

1

Seus nomes de arquivos provavelmente contêm espaços.

Adicione o parâmetro "tokens = *" para puxar a linha inteira (em vez de delimitada por um espaço). Além disso, você também precisará cercar o nome do arquivo de saída com aspas duplas.

FOR /f "tokens=*" %%A IN (foldersTemp.txt) DO ffmpeg -i %%A -vf fps=1/200 "%%Athumb%%04d.jpg"
    
por 10.09.2015 / 20:43