為什麼這個多行 for/in/do 不能大量工作?

為什麼這個多行 for/in/do 不能大量工作?

為了幫助我的孩子學習最常見的顏色,我製作了這批(它是 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運行一個命令,用一種顏色填充我的 16:9 螢幕,直到孩子識別出該顏色並正確命名為止;ffplay然後我按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

^您可以省略所有不必要的行繼續字符,
但由於後面的行在第一列中開始,這被解釋為轉義下一行的第一個字符 - 我猜不是您想要的。

這對字母來說沒有什麼壞處,但轉義右括號是另一回事。
以下批次僅回顯用於測試目的的命令:

@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

相關內容