1

Чтобы помочь моему ребенку выучить наиболее распространенные цвета, я сделал этот пакет (это Windows 7, но я полагаю, что то же самое в другой версии 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

Довольно просто: цикл for запускает каждую команду ffplay одной, заполняя мой экран 16: 9 одним цветом, пока ребенок не распознает цвет и не назовет его; затем я нажимаю q, чтобы выйти из этого экземпляра ffplay и отображается следующий цвет.

Я нарушаю команду, чтобы иметь каждое значение цвета в строке, чтобы легко смешивать строки, когда мне это нужно, чтобы избежать изучения определенного порядка.

Но это просто не работает. Если я правильно понял из этих двух вопросов ...

... поскольку каждая ^<new line> исчезает из последней команды, мой пакет эквивалентен одной строке интерпретатора командной строки ...

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

... что, само собой разумеется, работает отлично.

То, что он работает, начинает последнюю строку с пробела. Но, несмотря на поиск способа заставить пакет работать, вопрос остается. Зачем нужно это пространство? Или что мне не хватает в ответах на перечисленные вопросы?

Редактировать:
# 82461F == коричневый
# 7E287E == фиолетовый
Моя жена не была уверена в том, как эти два названных цвета выглядят на нашем дисплее.

Редактировать:
Для справки: окончательная рабочая партия (спасибо всем), с цветами в алфавитном порядке и без лишних пробелов и пробелов:

@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

1 ответ1

1

Вы можете опустить все символы продолжения строки ^ они не обязательны,
но так как строки, начинающиеся с первого столбца, начинаются с того, что они выходят за пределы первого символа следующей строки - я думаю, это не то, что вы указали.

Это не вредит письмам, но избегать закрывающих скобок - это совсем другое.
Следующая партия отображает только команду для целей тестирования:

@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

Образец вывода:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .