आप पहिया को फिर से मजबूत कर रहे हैं। सामान्य पॉवरशेल स्क्रिप्ट में पैरामीटर शुरू होते हैं -
, जैसेscript.ps1 -server http://devserver
फिर आप उन्हें param
फ़ाइल की शुरुआत में अनुभाग में संभालते हैं ।
आप अपने पैरामेट्स को डिफ़ॉल्ट मान भी दे सकते हैं, उपलब्ध नहीं होने या स्क्रिप्ट निष्पादन बंद करने पर उन्हें कंसोल से पढ़ें:
param (
[string]$server = "http://defaultserver",
[Parameter(Mandatory=$true)][string]$username,
[string]$password = $( Read-Host "Input password, please" )
)
स्क्रिप्ट के अंदर आप बस कर सकते हैं
write-output $server
चूंकि सभी पैरामीटर स्क्रिप्ट के दायरे में उपलब्ध चर बन जाते हैं।
इस उदाहरण में, $server
डिफ़ॉल्ट मान मिलता है यदि स्क्रिप्ट को इसके बिना कहा जाता है, तो स्क्रिप्ट बंद हो जाती है यदि आप -username
पैरामीटर को छोड़ देते हैं और टर्मिनल इनपुट के लिए पूछते हैं कि -password
क्या छोड़ा गया है।
अद्यतन: आप पॉवरशेल स्क्रिप्ट में "ध्वज" (बूलियन सही / गलत पैरामीटर) पास करना चाहते हैं। उदाहरण के लिए, आपकी स्क्रिप्ट एक "बल" को स्वीकार कर सकती है जहां बल का उपयोग नहीं होने पर स्क्रिप्ट अधिक सावधान मोड में चलती है।
उस कीवर्ड का [switch]
पैरामीटर प्रकार है:
param (
[string]$server = "http://defaultserver",
[string]$password = $( Read-Host "Input password, please" ),
[switch]$force = $false
)
स्क्रिप्ट के अंदर तो आप इसके साथ इस तरह काम करेंगे:
if ($force) {
//deletes a file or does something "bad"
}
अब स्क्रिप्ट को कॉल करते समय आप स्विच / फ्लैग पैरामीटर को इस तरह सेट करेंगे:
.\yourscript.ps1 -server "http://otherserver" -force
यदि आप स्पष्ट रूप से बताना चाहते हैं कि ध्वज सेट नहीं है, तो उसके लिए एक विशेष वाक्यविन्यास है
.\yourscript.ps1 -server "http://otherserver" -force:$false
प्रासंगिक Microsoft दस्तावेज़ीकरण के लिंक (PowerShell 5.0 के लिए; थो 3.0 संस्करण और 4.0 लिंक पर भी उपलब्ध हैं):