OK, eu acho que você tem um monte de arquivos como
ant.mov
bug.mov
cat.mov
dog.mov
︙
em um diretório (pasta a.k.a), e você quer fazer
HandBrakeCLI.exe (blah blah blah) -i ant.MOV -o ant.mp4
HandBrakeCLI.exe … … -i bug.MOV -o bug.mp4
HandBrakeCLI.exe … … -i cat.MOV -o cat.mp4
HandBrakeCLI.exe … … -i dog.MOV -o dog.mp4
︙
para todos os arquivos *.mov .
Isso é bastante simples:
for %F in (*.mov) do HandBrakeCLI.exe (blah blah blah) -i "%F" -o "%~nF.mp4"
O for %F in (*.mov) executa um loop
em que %F assume cada nome *.mov aplicável.
Então o comando seguindo o do é executado para cada arquivo,
com %F obviamente sendo substituído pelo nome do arquivo .mov .
(Nota: o F faz distinção entre maiúsculas e minúsculas).
(Você pode ser capaz de passar sem as aspas -
ou seja, apenas %F e não "%F" -
mas então ele falhará se você tiver qualquer nome de arquivo
com espaço (s) ou outros caracteres especiais.)
%~nF é substituído pela parte n do nome do arquivo
(não incluindo a extensão), então %~nF.mp4 se torna o nome do arquivo de saída.
Você pode dividir isso em várias linhas, porque o seu comando atual é tão longo e / ou porque você quer fazer outras coisas no loop. Você pode fazer isso com parênteses:
for %F in (*.mov) do (
HandBrakeCLI.exe (blah blah blah) -i "%F" -o "%~nF.mp4"
(other command(s) featuring "%F", "%~nF", etc.)
)
Digite for /? para ver uma lista de todos os códigos ~ .
(Por exemplo, %~dF fornece a letra da unidade e %~pF fornece o caminho.
A documentação não é clara sobre o fato
que você pode combinar os modificadores;
Por exemplo, %~dpnF fornece a unidade, o caminho e o nome.
mas não a extensão - como se você tivesse digitado %~dF%~pF%~nF .)
Você também pode dividir comandos longos em várias linhas com ^ :
for %F in (*.mov) do (
HandBrakeCLI.exe --preset-import-file "preset-name.json" ^
-Z "preset-name" -i "%F" -o "%~nF.mp4"
(other command(s) featuring "%F", "%~nF", etc.)
)
Todos os itens acima funcionam no Prompt de Comando (linha de comando).
A mesma coisa funciona em um script em lote,
exceto que você deve substituir cada % por %% :
for %%F in (*.mov) do (
HandBrakeCLI.exe --preset-import-file "preset-name.json" ^
-Z "preset-name" -i "%%F" -o "%%~nF.mp4"
(other command(s) featuring "%%F", "%%~nF", etc.)
)
Isso é testado no Windows7, mas ficaria muito surpreso se não funcionasse no Windows10.