2012-11-16 13 views
7

सी और अन्य भाषाओं की तरह, आप स्क्रिप्ट/.exe तर्कों को शारीरिक रूप से स्क्रिप्ट निष्पादित करते समय दे सकते हैं। उदाहरण के लिए:लॉन्च पर पावरहेल स्क्रिप्ट्स के साथ तर्क

myScript.exe Hello 10 P

जिससे हैलो, 10 और पी कार्यक्रम अपने आप में कुछ चर करने के लिए पारित कर रहे हैं।

क्या यह पावरहेल में संभव है? और यदि हां, तो आप उन तर्कों को किसी दिए गए $ चर

धन्यवाद कैसे देते हैं!

उत्तर

16

तो जैसे एक परम ब्लॉक के साथ अपनी स्क्रिप्ट को परिभाषित करें:

-- Start of script foo.ps1 -- 
param($msg, $num, $char) 

"You passed in $msg, $num and $char" 

आप आगे टाइप अर्हता प्राप्त कर सकते हैं पैरामीटर के रूप में अच्छी तरह से जैसे:

-- Start of script foo2.ps1 -- 
param([string]$msg, [int]$num, [char]$char) 

"You passed in $msg, $num and $char" 

तुम भी मूलभूत मूल्यों और आवश्यक मान निर्दिष्ट कर सकते हैं जैसे:

-- Start of script foo3.ps1 -- 
param([string]$msg=$(throw "Msg param is required"), [int]$num, [char]$char="P") 

"You passed in $msg, $num and $char" 

आप उन्नत कार्यों के साथ भी फैनसीयर प्राप्त कर सकते हैं (attribu निर्दिष्ट करें मानकों को मान्य करने के लिए टीएस, आदि)। लेकिन यह आपको जाना चाहिए।

7

बस @Keith हिल जवाब देने के लिए एक पूरक ...

आप 'सी' के बारे में बात के रूप में, आप भी automatic variable$args का उपयोग कर मानकों के साथ एक स्क्रिप्ट लिख सकते हैं।

$Args फ़ंक्शन, स्क्रिप्ट या स्क्रिप्ट ब्लॉक में पारित अविकसित पैरामीटर और/या पैरामीटर मानों की एक सरणी शामिल है।

-- Start of script foo3.ps1 -- 
if ($args.length -gt 0) 
{ 
    write-host "first param is $($args[0])" 
} 

for ($i=0 ; $i -lt $args.length ; $i++) 
{ 
    write-host "$i) " $args[$i] 
} 

आप thr स्क्रिप्ट

.\foo3.ps1 coucou bonjour "hello world" 
first param is coucou 
0) coucou 
1) bonjour 
2) hello world 
कॉल कर सकते हैं
संबंधित मुद्दे