คอมโบสี PowerShell
งาน PowerShell ของฉันจำนวนมากเมื่อเร็วๆ นี้เกี่ยวข้องกับสี ฉันพบว่าตัวเองใช้ Escape Sequence ของ ANSI ค่อนข้างบ่อย ฉันยังเล่นกับโทนสีที่แตกต่างกันใน Windows Terminal และในบางครั้งฉันยังพบว่าตัวเองใช้ Write-Host เพื่อแสดงข้อความที่มีสี สิ่งที่ยุ่งยากกว่านั้นคือโครงร่าง Windows Terminal สามารถกำหนดสีใหม่ได้ สิ่งที่ฉันคุ้นเคยเป็นสีเขียวอาจไม่ใช่สีเขียวจริงๆ ฉันขัดเกลาสคริปต์ง่ายๆ เพื่อแสดงชุดค่าผสมที่เป็นไปได้ทั้งหมดสำหรับสีคอนโซล
#requires -version 5.1
#Display a combination of foreground and background console colors
#create an array of system console colors
$colors = [enum]::GetNames([consolecolor])
<#
combine the color as foreground in combination with every color
as a background
#>
foreach ($bg in $colors) {
Clear-Host
foreach ($fg in $colors) {
$msg = "This is a $fg foreground on a $bg background"
Write-Host $msg.PadRight(75, ' ') -ForegroundColor $fg -BackgroundColor $bg
} #foreach $bg
#pause for each background
Write-Host " "
Pause
} #foreach $fgสคริปต์จะวนไปตามสีคอนโซลทั้งหมด โดยหยุดชั่วคราวหลังจากแต่ละสี นี่คือสิ่งที่ดูเหมือนในเซสชัน Windows PowerShell แบบเดิม
ทำให้ง่ายต่อการระบุการผสมสีที่ดี แต่สังเกตว่าเกิดอะไรขึ้นใน Windows Terminal
คุณจะเห็นว่า DarkGreen ไม่ใช่สิ่งที่พูดไว้จริงๆ แต่สิ่งนี้ช่วยให้ฉันเลือกสีคอนโซลที่เหมาะสมได้
โทนสี Windows Terminal ของฉันบางแบบอาจไม่โดดเด่นเท่าสีนี้ แต่ไม่ว่าอย่างไร ตอนนี้ฉันมีสคริปต์สั้นๆ ที่สามารถเรียกใช้เพื่อดูตัวอย่างสิ่งที่ฉันคาดหวังได้ หวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์


