
$Colors = @{
1 = 'White'
2 = 'Black'
3 = 'DarkBlue'
4 = 'DarkGreen'
5 = 'DarkCyan'
6 = 'DarkRed'
7 = 'DarkMagenta'
8 = 'DarkYellow'
9 = 'Gray'
10 = 'DarkGray'
11 = 'Blue'
12 = 'Green'
13 = 'Cyan'
14 = 'Red'
15 = 'Magenta'
16 = 'Yellow'
}
$pixels = 1,2,3,4,5,6
foreach ($pixel in $pixels)
{
Write-Host " " -NoNewline -BackgroundColor $Colors.$pixel
}
我上面有這段代碼,我試圖用它在powershell視窗中繪制像素化影像。現在它被設定為只繪制那一行像素。我想知道如何制作一個串列串列、陣列陣列或陣列串列,例如可以用來繪制 20x20 像素大小的影像。我熟悉如何在 python 但不是 powershell 中執行此操作,如下所示。各種型別的多維陣列。
$pixels = [(1,2,3,4,5,6)],
[(6,5,4,3,2,1)]
foreach ($pixel in $pixels)
{
Write-Host " " -NoNewline -BackgroundColor $Colors.$pixel
}
在進行更多研究后,我發現類似下面的東西可能有效,但我不知道如何正確迭代它
System.Collections.ArrayList]$pixels = @()
$pixels = @(@(1,2,3),@(4,5,6),@(7,8,9))
foreach ($pixel in $pixels){ Write-Host " " -NoNewline -BackgroundColor $Colors.$pixel; Start-Sleep -m 50 }
uj5u.com熱心網友回復:
您仍然可以創建一個多維陣列,但當然您仍然必須遍歷每個單獨的陣列,并為每個陣列中的每個元素再次回圈。
我認為您的代碼中只缺少一個內回圈和新行:
$Colors = @{
1 = 'White'
2 = 'Black'
3 = 'DarkBlue'
4 = 'DarkGreen'
5 = 'DarkCyan'
6 = 'DarkRed'
7 = 'DarkMagenta'
8 = 'DarkYellow'
9 = 'Gray'
10 = 'DarkGray'
11 = 'Blue'
12 = 'Green'
13 = 'Cyan'
14 = 'Red'
15 = 'Magenta'
16 = 'Yellow'
}
$arrays = @(1,2,3,4,5,6), @(6,5,4,3,2,1)
foreach ($array in $arrays)
{
foreach ($position in $array) {
Write-Host " " -NoNewline -BackgroundColor $Colors[$position]
}
Write-Host ""
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462216.html
上一篇:如何將陣列傳遞給函式?
