ฉันมักจะแจ้งให้เป็นสีนี้ใน linux ของฉัน จากนั้นฉันสามารถค้นหาอินพุตของฉันในหน้าต่างคำสั่งสีดำ แต่เราสามารถสร้างสีเดียวกันในPowershellของฉันได้ไหม
ฉันมักจะแจ้งให้เป็นสีนี้ใน linux ของฉัน จากนั้นฉันสามารถค้นหาอินพุตของฉันในหน้าต่างคำสั่งสีดำ แต่เราสามารถสร้างสีเดียวกันในPowershellของฉันได้ไหม
คำตอบ:
สิ่งที่คุณต้องการจะทำคือการปรับแต่งพรอมต์
พรอมต์เริ่มต้นใน PowerShell 3.0 และใหม่กว่าคือ:
function prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
ตอนนี้, Windows 10 สนับสนุนรหัสหนี ANSIใน conhost และสี 24 บิตได้รับการสนับสนุนตั้งแต่ 1703
จะใช้หนึ่งของรหัสหนี ANSI เราต้องมีตัวอักษรตัวอักษร ESC นี่คือฐานแปด 033 หรือทศนิยม 27 ใน Bash คุณจะใช้"\033"
หรือ"\e"
; ไม่มีลำดับที่เทียบเท่าโดยตรงใน PowerShell แต่คุณสามารถฝังนิพจน์แทนได้:"$([char]27)"
ใน PowerShell Core คุณสามารถใช้"`e"
escape sequence แทน ขอบคุณที่แสดงความคิดเห็นโดย asherber
ซึ่งหมายความว่าคุณสามารถใช้ลำดับการหลีกเลี่ยงต่อไปนี้เพื่อตั้งค่าสีพื้นหลังเป็นสีฟ้าด้วยรหัส46
:
"$([char]27)[46m"
ซึ่งสามารถใช้เช่น:
echo "$([char]27)[46mColoured text"
เพื่อให้สิ่งที่อ่านง่ายขึ้นให้กำหนดตัวแปร:
$ESC = [char]27
ดังนั้นเราสามารถใช้:
"$ESC[46m"
$ESC
ตัวอักษร ESC อยู่ตรงไหน[
กำหนดจุดเริ่มต้นของรายการพารามิเตอร์และm
จุดสิ้นสุด
ใช้ในคำสั่ง:
echo "$ESC[46mColoured text"
และเพื่อเรียกคืนการตั้งค่าสีดั้งเดิมเราใช้รหัส0
แทน:
echo "$ESC[46mColoured text$ESC[0mUncoloured text"
หากคุณไม่พอใจกับจานสีแบบพื้นฐาน 16 สีคุณสามารถใช้สี 24 บิตแบบเต็มกับแบบฟอร์ม:
"$ESC[48;2;<r>;<g>;<b>m"
ที่ไหน<r>
เป็นค่าทศนิยมสำหรับสีแดง 0-255, <g>
สีเขียวและ<b>
สีน้ำเงินเช่น"$ESC[48;2;255;0;123m"
โปรดดูเอกสารประกอบสำหรับข้อมูลเพิ่มเติม
ในความเป็นจริงนี่คือทั้งหมดที่เทียบเท่าโดยตรงกับสิ่งที่คุณจะทำในทุบตียกเว้นคุณจำเป็นต้องใช้$ESC
(หลังจากที่คุณได้กำหนดไว้มัน) แทนหรือ\e
\033
เมื่อนำสิ่งเหล่านี้มารวมกันเราสามารถใช้รหัสยกเว้นสีของ ANSI ในพรอมต์ที่แก้ไขเพื่อเปลี่ยนสีพื้นหลัง:
function prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
หากคุณต้องการให้สิ่งนี้ยังคงมีอยู่ในเซสชันให้เพิ่มลงในโปรไฟล์ของคุณ (เช่น.bashrc
) คุณสามารถดูเส้นทางไปยังโปรไฟล์ของคุณ$profile
ได้
1;37m
เหมือนกัน97m
ทั้งสองมีความหมายว่า "สีขาวสดใส")
[char]27
สำหรับ ฉันไม่แน่ใจว่าสิ่งนี้ถูกเพิ่มเข้ามาในเวอร์ชั่นก่อนหน้านี้หรือไม่