2013-02-15 8 views
5

मैं एक पावरहेल स्क्रिप्ट लिखना चाहता हूं जो पैराम में लेता है और कार्यों का उपयोग करता है।पार्सहेल स्क्रिप्ट पैरा * और * फ़ंक्शंस

मैं इस कोशिश की:

param 
(
    $arg 
) 

Func $arg; 


function Func($arg) 
{ 
    Write-Output $arg; 
} 

लेकिन मैं यह मिल गया:

The term 'Func' is not recognized as the name 
of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again. 
At func.ps1:6 char:5 
+ Func <<<< $arg; 
    + CategoryInfo   : ObjectNotFound: (Func:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

ठीक है, मैंने सोचा था कि। मैं इस के बजाय कोशिश करता हूँ:

function Func($arg) 
{ 
    Write-Output $arg; 
} 


param 
(
    $arg 
) 

Func $arg; 

लेकिन फिर भी, मुझे मिल गया इस:

The term 'param' is not recognized as the name 
of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, 
verify that the path is correct and try again. 
At C:\Users\akina\Documents\Work\ADDC\func.ps1:7 char:10 
+  param <<<< 
    + CategoryInfo   : ObjectNotFound: (param:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

मैं क्या साध्य के लिए पूछ रहा हूँ है? या मैं अपने अनुरोध में अनुचित हूं?

+2

शक्तिशक्ति स्क्रिप्ट का क्रम आम तौर पर है, 1) पैरा, 2) कार्य 3) फ़ंक्शन कॉल/आदेशित cmdlets निष्पादित करने के लिए। –

+0

क्रिस्टोफर रानी, ​​यह एक सहायक सारांश है। यदि आपने इसे एक प्रश्न के रूप में पोस्ट किया था, तो मैंने इसे वोट दिया होगा। –

+0

यदि आपका दिल ऐसा चाहता है तो आप टिप्पणियां वोट कर सकते हैं। :) –

उत्तर

19

किसी स्क्रिप्ट में पैरा ब्लॉक को पहला गैर-टिप्पणी कोड होना चाहिए। उसके बाद, आप इससे पहले कि आप आह्वान समारोह परिभाषित करने की जरूरत उदा .:

param 
(
    $arg 
) 

function Func($arg) 
{ 
    $arg 
} 

Func $arg 

लिखें-आउटपुट अपने उदाहरण में अनावश्यक है, क्योंकि डिफ़ॉल्ट व्यवहार उत्पादन धारा के उत्पादन वस्तुओं के लिए है।

+0

और क्या होगा यदि हम उस फ़ंक्शन परिभाषा को मॉड्यूल में ले जाएं और आयात करें कि हमारी मशीन पर, तो उसे कॉल करें @ टोला ओडेजयई करने की कोशिश कर रहा है? –

+0

@ फ़ार्रुखवाहीड एक मॉड्यूल पर लागू होता है। यद्यपि यह संभवतः सामान्य मामला नहीं है, फिर भी एक पीएसएम 1 नियमित स्क्रिप्ट फ़ाइल की तरह पैरामीटर को परिभाषित कर सकता है और कोड निष्पादित कर सकता है (न केवल फ्लेक्शंस को परिभाषित करता है)। –

-2

आप समारोह के अंदर परम टैग डाल सकते हैं .. इस तरह

कुछ:

function func($avg) 
{ 
    param 
    (
     $avg 
    ) 
} 
3

तुम सब ius जरूरत है सुनिश्चित करें PARAM अपनी स्क्रिप्ट के पहले स्ट्रिंग है बनाने के लिए।

संबंधित मुद्दे