2011-04-20 11 views
51

विंडोज पावरहेल का उपयोग करके मैं कमांड प्रॉम्प्ट कैसे बदलूं? उदाहरण के लिए डिफ़ॉल्ट संकेतविंडोज पावरहेल: कमांड प्रॉम्प्ट बदलना

PS C:\Documents and Settings\govendes\My Documents> 

मैं उस स्ट्रिंग को कस्टमाइज़ करना चाहता हूं।

धन्यवाद

उत्तर

75

बस अपने Powershell प्रोफ़ाइल (notepad $PROFILE), जैसे में एक समारोह prompt डाल:

function prompt {"PS: $(get-date)>"} 

या रंगीन:

function prompt 
{ 
    Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White 
    return " " 
} 
+0

'नोटपैड $ PROFILE' एक व्यवस्थापक से विंडोज 7 में काम नहीं करता PowerShell का संकेत – jcollum

+16

आह, मैं देख रहा हूँ कि आप पहले प्रोफ़ाइल बनाने की आवश्यकता:' नए आइटम -itemtype फ़ाइल -path $ प्रोफ़ाइल -Force ' – jcollum

+2

नोट: आप अपने प्रोफाइल में फ़ंक्शन को सहेजने के बजाय प्रॉम्प्ट पथ को बदलने के लिए प्रॉम्प्ट फ़ंक्शन को पावरहेल में पेस्ट कर सकते हैं, लेकिन हर बार जब आप पावरहेल लॉन्च करेंगे तो आपको यह करना होगा। –

14

ऊपर टिप्पणी करने के लिए संबंधित है, तो निम्न है विंडोज सर्वर 2012 के साथ-साथ Win7:

के लिए आवश्यक
new-item -itemtype file -path $profile -force 
notepad $PROFILE 

यदि आप एकाधिक उपयोगकर्ता नामों के साथ चलते हैं तो मैं निम्न संकेतों का सुझाव दूंगा (उदा। खुद के + एक उत्पादन प्रवेश):

function Global:prompt {"PS [$Env:username]$PWD`n>"} 

(इस एक के लिए डेविड आई मैकिंटोश को ऋण)

+0

आपको पावरहेल को व्यवस्थापक के रूप में चलाने की भी आवश्यकता है और' सेट-एक्जिक्यूशन पॉलिसी रिमोटसाइन 'करें। – qed

3

आप इसे अपने आप को क्या करना चाहते हैं, तो Ocaso Protal's answer जाने का रास्ता है। लेकिन अगर आप मेरे जैसे आलसी हैं और सिर्फ आपके लिए कुछ करना चाहते हैं, तो मैं अत्यधिक Luke Sampson's Pshazz package की सलाह देता हूं।

बस आपको यह दिखाने के लिए कि आप कितने आलसी हो सकते हैं, मैं एक त्वरित ट्यूटोरियल प्रदान करूंगा।

  • एक अच्छा पूर्वनिर्धारित विषय के साथ Scoop (scoop install pshazz)
  • उपयोग Pshazz स्थापित करें (pshazz use msys)
  • पी (रूट) बियर

Pshazz भी है जो, आप अपने खुद के विषयों बनाने की अनुमति देता एक JSON फ़ाइल को कॉन्फ़िगर करने के रूप में सरल। Check out mine यह देखने के लिए कि यह कितना आसान है!

0

प्रॉम्प्ट पर, मुझे वर्तमान ड्राइवस्टैम्प और नेटवर्क ड्राइव के लिए हल किए गए ड्राइव अक्षरों को पसंद है। इसे और अधिक पठनीय बनाने के लिए, मैंने इसे दो पंक्तियों में रखा, और रंगों के साथ थोड़ा सा खेला। BTW थोड़ा और अधिक पठनीय है कौन सा :-)

function prompt { 
    $dateTime = get-date -Format "dd.MM.yyyy HH:mm:ss" 
    $currentDirectory = $(Get-Location) 
    $UncRoot = $currentDirectory.Drive.DisplayRoot 

    write-host "$dateTime" -NoNewline -ForegroundColor White 
    write-host " $UncRoot" -ForegroundColor Gray 
    # Convert-Path needed for pure UNC-locations 
    write-host "PS $(Convert-Path $currentDirectory)>" -NoNewline -ForegroundColor Yellow 
    return " " 
} 

:

अध्यक्ष एवं प्रबंध निदेशक के साथ

, मैं

PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G 

पी एस के लिए के साथ समाप्त हो गया है, मैं के साथ एक ही परिणाम मिला:

  • मुझेपसंद है(गूंगा) नोटपैड
  • यदि आप ब्रेकपॉइंट्स के साथ अपने प्रॉम्प्ट() को डीबग करना चाहते हैं, तो आपको किसी अन्य चीज़ पर प्रॉम्प्ट-फ़ंक्शन का नाम बदलना चाहिए (या किसी अन्य फ़ाइल में इसे आजमाएं)।अन्यथा आप एक लूप में समाप्त हो सकते हैं: जब आप डिबगिंग रोकते हैं, प्रॉम्प्ट() को फिर से कॉल किया जाता है और आप ब्रेकपॉइंट पर फिर से रुक जाते हैं। काफी पहले परेशान, ...
0

Warren Stevens' answer के इस संस्करण में अगर आप Set-Location शेयरों नेटवर्क के रास्ते में शोर "Microsoft.PowerShell.Core \ FileSystem" बचा जाता है।

function prompt {"PS [$Env:[email protected]$Env:computername]$($PWD.ProviderPath)`n> "} 
संबंधित मुद्दे