के साथ PowerShell फ़ंक्शन मैं कुछ पावरशेल फ़ंक्शन बनाना चाहता हूं जो कुछ डेटा को समझाता है, और सभी घटनाओं पर स्क्रिप्ट ब्लॉक को आग लगाना चाहता है।पैरामीटरयुक्त स्क्रिप्ट ब्लॉक
अब मेरे पास है द्वारा (इस वास्तविक कोड नहीं है, लेकिन यह मेरी मुद्दे को दर्शाता है):
function Invoke-TenTimes
{
[CmdletBinding()]
param
(
[Parameter(Mandatory=$true, Position=0)]
[ScriptBlock]$Action
)
process
{
$digits = 0..10
$digits | % {
$Action.Invoke($_);
}
}
}
मैं अपने मॉड्यूल में इस समारोह डाल दिया। हालांकि, मुझे कोई परिणाम नहीं मिलता है जब मैं कॉल करता हूं:
Invoke-TenTimes { $_ }
आउटपुट खाली है (कुछ भी प्रदर्शित नहीं होता है)।
अगर मैं
Invoke-TenTimes { $_ -eq $null }
फोन मैं दस true
मिलता है। वास्तव में, मुझे लगता है कि $_
शून्य है।
$_
को पॉप्युलेट करने का उचित तरीका क्या है?
क्या मुझे पागल गाड़ी चला रहा है, कि अगर मैं इस समारोह और एक ही PS1 फ़ाइल, यह काम करता है में कॉल डाल (लेकिन मैं मांग पर स्क्रिप्ट ब्लॉक पास करना चाहते हैं) है:
function Invoke-TenTimes
{
[CmdletBinding()]
param
(
[Parameter(Mandatory=$true, Position=0)]
[ScriptBlock]$Action
)
process
{
$digits = 0..10
$digits | % {
$Action.Invoke($_);
}
}
}
Invoke-TenTimes { $_ }
धन्यवाद! इसने मेरा मुद्दा हल किया, और अब मैं $ _ के साथ एक स्क्रिप्ट ब्लॉक का उपयोग करने में सक्षम हूं :)। –