Eu tenho o ffmpeg instalado e uso arquivos em lote para converter MP4 h.264 para MKV x.265 com sucesso, mas tenho um problema com a conversão de arquivos FLAC para MP3 de 320 kbps sem metadados necessários. Embora muitos posts expliquem como fazer isso no Linux, seus scripts não resolvem esse problema quando executados no prompt de comando do Windows.
O script de linha de comando que criei para converter para MP3 tem esta linha:
for %%A in (*.flac) do ffmpeg -i "%%~nA.flac" -c:v copy -b:a 320k "%%~nA.mp3"
Não sendo adepto do Powershell, estou procurando uma solução de linha de comando. Eu não me importo se os metadados sobrevivem ou não.
Como posso modificar isso para converter todos os arquivos FLAC no diretório atual e todos os subdiretórios abaixo dele (como mostrado no primeiro link acima para Linux)?
O seguinte
.bat
arquivo deve fazer isso:Você pode testá-lo primeiro com este script:
Explicação para as substituições acima (elas estão combinadas no script acima):
%~dA
- expande %A apenas para uma letra de unidade%~pA
- expande %A apenas para um caminho%~nA
- expande %A apenas para um nome de arquivoVocê realmente precisa usar .Flac duas vezes?
E você sempre vai salvar todos os arquivos convertidos na mesma pasta (diretório de trabalho)?
1. Remova
n
e.flac
For
variável loop"%%~A"
fornece a você o caminho completo para o arquivo de entrada, não é necessário cortar o nome e/ou adicionar explicitamente:2. Usar
For /R
:3. Considere definir/adicionar a
drive:\folder\
para salvar o arquivo codificado de destino, não apenas um nome, se não for para salvá-lo no mesmo diretório de trabalho em que seu bat está..mp3
no diretório atual/trabalho, você pode usar:Um sugere o uso
For /F + where /R
^
, não use nenhum espaço/caractere após o acento circunflexo:Recursos adicionais:
Set /?
For /?
For /F
For /R
Where /?
Timeout /?
|
,<
,>
,2>
, etc||
e&&
Local Environment | Function
| Consulte também:Goto :EOF
Setlocal
&Endlocal
cmd.exe
] analisa scripts