Windows: loop por meio de lote de texto

0

Eu uso o software MyFFVideoConverter. Eu gostaria de executar um script em lote. Meu código é assim:

-i intro.jpg -i <input_file> -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 <output_file>

Funciona, mas eu gostaria de usar um comando mylist.txt em vez de -i intro.jpg . O script deve escolher apenas a primeira entrada no arquivo mylist.txt , por exemplo intro1.jpg , e excluir a primeira entrada depois. A próxima vez que o script usar intro2.jpg e excluir essa nova primeira entrada e assim por diante.

    
por J. J. 14.05.2018 / 19:08

1 resposta

0

Você pode incluir seu comando atual assim:

for line in $(cat mylist.txt); do MyFFVideoConverter ... -i $line ; done

(substitua o ... por todas as suas outras opções)

Esse loop executará seu comando uma vez por linha em mylist.txt , sempre usando o conteúdo da linha como parâmetro da opção -i .

Isso não exclui nada do arquivo mylist.txt . Você pode removê-lo completamente no final com rm .

Se você realmente precisa apenas escolher a primeira linha e removê-la, então:

line = $(head -1 mylist.txt)
MyFFVideoConverter ... -i $line

e, em seguida, para remover a primeira linha de mylist.txt , eu o depoio para link que fornece várias soluções.

Todos os itens acima supõem que suas linhas (nomes de arquivos) não possuam espaços ou caracteres interpretados pelo shell (|, & amp ;, etc.). Se for esse o caso, você precisará ser mais cauteloso e proteger as coisas com aspas.

    
por 14.05.2018 / 20:50