Powershell advanced functions: are optional parameters supposed to get initialized? -
फिल्टर गणनाफ़िल्टर ($ StartAt = 0) {लिखना-आउटपुट ($ StartAt ++)} फ़ंक्शन काउंटफ़ंक्शन {{सीएमडीलेबिंग ( $ ($ StartAt ++)}} $ ($ StartAt ++)}} $ $ = $ dir = $ dir (पैरामीटर (ValueFromPipeline = $ true, अनिवार्य = $ सच)] $ इनपुट ऑब्जेक्ट, [पैरामीटर (स्थिति = 0)] $ StartAt = 0 प्रक्रिया {write-output ($ StartAt ++)}} $ fiveThings = $ dir | पहले 5 # चुनें या जो भी "ठीक" $ पांच बातें | गणनाफ़िल्टर 0 "ठीक" $ पांच बातें | गणनाफ़िल्टर "ठीक" $ पांच बातें | गणनाफंक्शन 0 "बग़ुगज ??" $ पांच बातें | गणना फंक्शन
मैंने कनेक्ट खोज की है और कोई भी ज्ञात बग नहीं मिला जिससे इस विसंगति का कारण होगा। किसी को भी पता है कि यह डिजाइन से है?
यह एमवीपी मेल सूची पर आया था। ऐसा प्रतीत होता है कि एड फ़ंक्शंस के साथ, प्रत्येक समय पाइपलाइन ऑब्जेक्ट प्राप्त होने पर, PowerShell डिफ़ॉल्ट मान को दोबारा (पुन: मूल्यांकन) कर रहा है। सूची में लोगों ने इसे एक बग माना फ़ंक्शन काउंटफंक्शन [[सीएमडीलेबिंग ()] परम ([पैरामीटर (मानफ्रेमपीपलाइन = $ सच, अनिवार्य = $ सच)] $ इनपुट ऑब्जेक्ट, [पैरामीटर (स्थिति = 0)] $ StartAt) {$ cnt = if ($ StartAt -q $ null) {0} और {$ StartAt}} प्रक्रिया {write-output ($ cnt ++)}} $ fiveThings = dir शुरू करें | पहले 5 # चुनें या जो भी "ठीक" $ पांच बातें | गणनाफंक्शन 0 "निश्चिंत" $ पांच बातें | गणनाफंक्शन
Comments
Post a Comment