Não sei ao certo o que deve ser colocado entre parênteses, onde tenho (".m2v")
.
what does that represent?
for %%a in (".m2v") do ffmpeg -i "%%~na.wav" -i "%%~na.m2v" -acodec copy -vcodec copy "newfiles\%%~na.mxf"
O valor (".m2v")
representa um conjunto de arquivos para processar.
No seu comando não há arquivos para processar desde:
-
.m2v
é apenas uma extensão e podemos supor que deve ser algo comofilename.m2v
- Você realmente precisa de uma expressão curinga aqui (veja abaixo como fazer isso).
- Seus arquivos estão em subdiretórios.
Use o seguinte arquivo de lote (no único diretório principal):
@echo off
setlocal
for /f "usebackq" %%a in ('dir /b /s *.m2v') do (
echo ffmpeg -i "%%~dpna.wav" -i "%%~dpna.m2v" -acodec copy -vcodec copy "newfiles\%%~na.mxf
)
endlocal
Notas:
-
Remova o
echo
do comandoffmpeg
quando estiver satisfeito com o que o arquivo em lote fará. -
dir /b /s *.m2v
é usado para produzir uma lista de arquivos a serem processados.A opção
/b
fornece apenas os nomes dos arquivos (não queremos os cabeçalhos, resumo ou outros detalhes)A opção
/s
permite quedir
processe subdiretórios. -
for /f
é usado para processar a lista de arquivos. -
%%~dpna
é usado para obter o nome completo do arquivo sem a extensão.
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- dir - Exibe uma lista de arquivos e subpastas.
- para / f - Comando Loop contra os resultados de outro comando.
- parâmetros - Um argumento de linha de comando (ou parâmetro) é qualquer valor passado para um script em lote.