मैं हमेशा अपने रंग को अपने लिनक्स में होने का संकेत देता हूं फिर मैं ब्लैक कमांड विंडो में अपना इनपुट पा सकता हूं। लेकिन क्या हम अपने पॉवर्स में वही रंग बना सकते हैं ?
मैं हमेशा अपने रंग को अपने लिनक्स में होने का संकेत देता हूं फिर मैं ब्लैक कमांड विंडो में अपना इनपुट पा सकता हूं। लेकिन क्या हम अपने पॉवर्स में वही रंग बना सकते हैं ?
जवाबों:
आप जो करना चाहते हैं, उसे शीघ्र अनुकूलित करें ।
PowerShell 3.0 और नए में डिफ़ॉल्ट प्रॉम्प्ट है:
function prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
अब, विंडोज 10 अपने कोनिस्ट में एएनएसआई से बचने के कोड का समर्थन करता है , और 1703 के बाद से 24-बिट रंग समर्थित है।
ANSI एस्केप कोड्स में से एक का उपयोग करने के लिए, हमें शाब्दिक ESC वर्ण की आवश्यकता होती है । यह ओक्टल 033, या दशमलव 27 है। बैश में, आप उपयोग करेंगे "\033"
या "\e"
; PowerShell में कोई प्रत्यक्ष समकक्ष अनुक्रम नहीं है, लेकिन आप इसके बजाय एक अभिव्यक्ति एम्बेड कर सकते हैं:"$([char]27)"
PowerShell Core में आप "`e"
इसके बजाय एस्केप अनुक्रम का उपयोग कर सकते हैं । एशर द्वारा टिप्पणी के लिए धन्यवाद।
इसका मतलब है कि आप उदाहरण के लिए, कोड के साथ सियान के लिए पृष्ठभूमि का रंग सेट करने के लिए निम्न एस्केप अनुक्रम का उपयोग कर सकते हैं 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
। मुझे यकीन नहीं है कि यह पहले के संस्करणों में जोड़ा गया था।