
Para ajudar meu filho a aprender as cores mais comuns, fiz este lote (é o Windows 7, mas suponho que seja o mesmo em outra versão do Windows):
@echo off
for %%a in (^
black ^
blue ^
green ^
gray ^
orange ^
pink ^
red ^
#82461F ^
#7E287E ^
white ^
yellow ^
) do ffplay -hide_banner -f lavfi -i color=%%a:160x90:d=3,format=rgb24 -fs
Bastante simples: o for
loop executa cada ffplay
comando, um de cada vez, preenchendo minha tela 16:9 com uma única cor até que a criança reconheça a cor e a nomeie bem; então pressiono qpara sair dessa instância ffplay
e a próxima cor é exibida.
Eu quebro o comando para poder ter todos os valores de cores em uma linha para misturar facilmente as linhas quando preciso, a fim de evitar que uma ordem específica seja aprendida.
Mas simplesmente não funciona. Se eu acertar essas duas perguntas...
- Comandos longos divididos em várias linhas no arquivo em lote (.bat) do Windows Vista
- Como dividir a linha entre aspas duplas em várias linhas no arquivo em lote do Windows?
... já que tudo ^<new line>
desaparece do comando final, meu lote é equivalente à linha única do interpretador de linha de comando ...
for %a in (black blue green gray orange pink red saddlebrown violet white yellow ) do ffplay -hide_banner -f lavfi -i color=%a:160x90:d=3,format=rgb24 -fs
... o que, nem é preciso dizer, funciona perfeitamente.
O que funciona é começar a última linha comum espaço. Mas, apesar de encontrar uma forma de fazer o lote funcionar, a questão permanece. Por que é necessárioaquele espaço? Ou o que estou faltando nas respostas às perguntas listadas?
Editar:
#82461F==marrom
#7E287E==violeta
Minha esposa não estava convencida de como essas duas cores nomeadas pareciam em nosso display.
Editar:
Para referência, o lote de trabalho final (obrigado a todos), com cores ordenadas alfabeticamente e sem sinais de intercalação e espaços desnecessários:
@echo off
for %%a in (
black
blue
#82461F %= brown %
gray
green
orange
pink
red
#7E287E %= violet %
white
yellow
) do ffplay -hide_banner -f lavfi -i color=%%a:160x90:d=3,format=rgb24 -fs
Responder1
Você pode omitir todos os caracteres de continuação de linha, ^
eles não são necessários,
mas como as linhas seguintes começam na primeira coluna, isso é interpretado como escapando do primeiro caractere da linha seguinte - não o que você indicou, eu acho.
Isso não prejudica as letras, mas escapar dos parênteses de fechamento é uma coisa diferente.
O lote a seguir ecoa apenas o comando para fins de teste:
@echo off
for %%a in (black
blue
green
gray
orange
pink
red
#82461F
#7E287E
white
yellow) do echo ffplay -hide_banner -f lavfi -i color=%%a:160x90:d=3,format=rgb24 -fs
Exemplo de saída:
ffplay -hide_banner -f lavfi -i color=black:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=blue:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=green:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=gray:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=orange:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=pink:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=red:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=#82461F:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=#7E287E:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=white:160x90:d=3,format=rgb24 -fs
ffplay -hide_banner -f lavfi -i color=yellow:160x90:d=3,format=rgb24 -fs