PowerShell 1.0 में, यदि मेरे पास एनम प्रकार का cmdlet पैरामीटर है, तो यह जांचने के लिए अनुशंसित विधि क्या है कि उपयोगकर्ता cmdlet कमांड लाइन पर पैरामीटर निर्दिष्ट करता है या नहीं? उदाहरण के लिए:मैं कैसे निर्धारित करूं कि PowerShell Cmdlet पैरामीटर मान निर्दिष्ट किया गया था या नहीं?
MyEnum : int { No = 0, Yes = 1, MaybeSo = 2 }
class DoSomethingCommand : PSCmdlet
...
private MyEnum isEnabled;
[Parameter(Mandatory = false)]
public MyEnum IsEnabled
{
get { return isEnabled; }
set { isEnabled = value; }
}
protected override void ProcessRecord()
{
// How do I know if the user passed -IsEnabled <value> to the cmdlet?
}
क्या बीज के बिना ऐसा करने का कोई तरीका है डमी मूल्य के साथ सक्षम है? डिफ़ॉल्ट रूप से यह 0 के बराबर होगा, और मैं हर पैरामीटर को बीज नहीं करना चाहता हूं या अपने enum में एक डमी मान जोड़ना नहीं चाहता। मुझे संभावित रूप से कई cmdlets 100 पैरामीटर के साथ मिल गया है, एक बेहतर तरीका होना चाहिए। यह this question से संबंधित है लेकिन मैं इसे करने का एक क्लीनर तरीका ढूंढ रहा था। धन्यवाद।
@Jack स्ट्रॉ आप है कि "संभावित मापदंडों के 100 के साथ कई cmdlets का मिला", तो आप उस कार्यक्षमता के कुछ तोड़ने को देखने के लिए चाहते हो सकता है। पावरशेल के प्रमुख लाभों में से एक खोज योग्यता है और बड़ी संख्या में पैरामीटर स्वयं खोज को और अधिक कठिन बनाते हैं। –
@ स्टेवेन, माफ करना, मैं भ्रामक हो सकता हूं - यह प्रत्येक cmdlet नहीं है जिसमें 100 के पैराम हैं :), लेकिन कई cmdlets जिसके परिणामस्वरूप कई पैरामीटर हैं। आपकी टिप्पणी के लिये धन्यवाद। –