2016-08-25 7 views
6

में चर के लिए एक डिफ़ॉल्ट मान बैश में मैं कुछ इस तरह कर सकते हैं एक डिफ़ॉल्ट मान पर name स्थापित करने के लिए करता है, तो UserName सेट नहीं है सेट करें?Powershell

+0

पैरामीटर के रूप में या केवल एक चर के रूप में? –

उत्तर

1

फ़ंक्शंस और पैरामीटर का उपयोग करके हम कुछ ऐसा कर सकते हैं जो मुझे विश्वास है कि आप क्या कर रहे हैं।

एक समारोह उदाहरण:

function WriteUser 
{ 
    param($user = "A User", 
    $message = "Message") 
    Write-Host $user 
    Write-Host $message 
} 

मापदंडों

WriteUser 

आप उत्पादन दे देंगे बिना फ़ंक्शन कॉल:

एक उपयोगकर्ता

संदेश

WriteUser -user "मुझे" -message "त्रुटि"

निम्नलिखित लिखना होगा:

मेरे

त्रुटि

एक जोड़े को अतिरिक्त नोट्स, है न पैरामीटर नामों का उपयोग नहीं करना है।

WriteUser "Bob" "All Systems Go" would work by the order of the parameters. 

साथ ही आप नाम वाले पैरामीटर का क्रम बदलने के कर सकते हैं:

WriteUser -message "Error" -user "user, user" 

और समारोह सही पैरामीटर के लिए रखा जाएगा।

अन्यथा, मेरा मानना ​​है कि आप त्रिगुट व्यवहार अनुमान लगाने के लिए कुछ करने के लिए होता है जैसे:

function Like-Tern 
{ 
    for ($i = 1; $i -lt $args.Count; $i++) 
    { 
     if ($args[$i] -eq ":") 
     { 
      $coord = $i 
      break 
     } 
    } 

    if ($coord -eq 0) { throw new System.Exception "No operator!" } 
    $toReturn 
    if ($args[$coord - 1] -eq "") 
    { 
     $toReturn = $args[$coord + 1] 
    } 
    else 
    { 
     $toReturn = $args[$coord -1] 
    } 

    return $toReturn 
} 

Credit for the idea here एक समारोह फ़ाइल भी शामिल हो सकते हैं:

Set-Alias ~ Like-Tern -Option AllScope 

और फिर आप इसे पसंद का प्रयोग करेंगे :

$var = ~ $Value : "Johnny" 

बेशक, ~ पूरी तरह से मनमाना था क्योंकि मुझे ${ काम करने के लिए नहीं मिला ...