2012-04-09 6 views
15

पावरहेल के भीतर वैरिएबल पास पास करें, मैं एक वैरिएबल को स्टार्ट जॉब में कॉल करने का सबसे अच्छा तरीका सीखना चाहता हूं, इसलिए मुझे प्रत्येक सर्वर के लिए स्क्रिप्ट को संपादित करने की आवश्यकता नहीं है क्योंकि यह विशिष्ट के आधार पर विशिष्ट होगा क्लाइंट मैंने अपनी लिपि रखी है।पावरहेल पास-जॉब

$Servername = 'Server1' 
    $pingblock = { 
     pathping $servername | Out-File C:\client\PS\ServerPing.TXT 
    } 
    start-job $pingblock 

जब मैं ऊपर अपना कोड चलाता हूं तो मुझे सहायता के साथ एक फ़ाइल मिलती है जैसे कि मैं $ servername निर्दिष्ट करना भूल गया।

उत्तर

22

Start-Job, उदा, पर उपयोग -ArgumentList पैरामीटर .:

Start-Job -Scriptblock {param($p) "`$p is $p"} -Arg 'Server1' 

आपके मामले में:

$pingblock = {param($servername) pathping $servername | Out-File C:\...\ServerPing.txt} 
Start-Job $pingblock -Arg Server1 
+0

धन्यवाद! मुझे याद आया कि नौकरी शुरू करने के लिए एक तर्क सूची थी। – jjamesjohnson