ค้นหาเว็บไซต์

คอมโบสี 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 ของฉันบางแบบอาจไม่โดดเด่นเท่าสีนี้ แต่ไม่ว่าอย่างไร ตอนนี้ฉันมีสคริปต์สั้นๆ ที่สามารถเรียกใช้เพื่อดูตัวอย่างสิ่งที่ฉันคาดหวังได้ หวังว่าคุณจะพบว่าสิ่งนี้มีประโยชน์

บทความที่เกี่ยวข้อง