से अंतिम ऑब्जेक्ट को संसाधित करने लगती है मेरे पास एक स्क्रिप्ट है जिसे मैं पाइपलाइन कार्यक्षमता जोड़ने की कोशिश कर रहा हूं। मैं अजीब व्यवहार देख रहा हूं, हालांकि, जहां स्क्रिप्ट केवल पाइपलाइन में अंतिम वस्तु के खिलाफ चलती है। उदाहरण के लिएस्क्रिप्ट केवल पाइपलाइन
param(
[parameter(ValueFromPipeline=$true)]
[string]$pipe
)
foreach ($n in $pipe) {
Write-Host "Read in " $n
}
मृत सरल, नहीं? मैं फिर 1..10 | .\test.ps1
चलाता हूं और यह केवल एक पंक्ति Read in 10
आउटपुट करता है। जटिलता को जोड़ना, वास्तविक स्क्रिप्ट मैं इस में उपयोग करना चाहते हैं मानकों के लिए और अधिक है:
[CmdletBinding(DefaultParameterSetName="Alias")]
param (
[parameter(Position=0,ParameterSetName="Alias")]
[string]$Alias,
[parameter(ParameterSetName="File")]
[ValidateNotNullOrEmpty()]
[string]$File
<and so on>
)
कि ऊपर मेरी साधारण परीक्षण लिपि में काम किया, लेकिन जब मैं यह मेरी स्क्रिप्ट में डाल दिया, यह वास्तव में गेट-प्रोसेस चलाता है (और विफल रहता है क्योंकि इसे नाम पैरामीटर के लिए स्क्रिप्ट ब्लॉक प्राप्त हो रहा है) – ASTX813
क्या आप अपनी पूरी स्क्रिप्ट या कम से कम अपने प्रश्न में मुख्य भाग डाल सकते हैं? –
चूंकि मेरा विकास बॉक्स मुझे कॉपी और पेस्ट करने की अनुमति देने से इंकार कर रहा है, इसलिए मैं इसे खींचने में सक्षम नहीं हूं। मैं आपको बता सकता हूं कि मैंने परीक्षण स्क्रिप्ट में और जटिलता जोड़ने की कोशिश की और ट्रिगर पाया। जब मैंने टेस्ट स्क्रिप्ट में प्रक्रिया {} ब्लॉक से पहले कुछ 'लिखें-होस्ट "फ़ंक्शनिंग"} 'फ़ंक्शन जोड़ा, तो यह वही काम करता था। यदि मैं पूरे ब्लॉक को प्रक्रिया में लपेटता हूं {}, हालांकि, परीक्षण स्क्रिप्ट काम करता है। – ASTX813