श्रृंखला में पिछले लेखों को पढ़ना सुनिश्चित करें:
- PowerShell के साथ विंडोज स्वचालित करने के लिए जानें
- PowerShell में Cmdlets का उपयोग करना सीखना
- PowerShell में ऑब्जेक्ट्स का उपयोग कैसे करें सीखना
- PowerShell में स्वरूपण, फ़िल्टरिंग और तुलना करना सीखना
- PowerShell में रिमोटिंग का उपयोग करना सीखें
- कंप्यूटर जानकारी प्राप्त करने के लिए PowerShell का उपयोग करना
- PowerShell में संग्रह के साथ काम करना
और पूरे सप्ताह श्रृंखला के बाकी हिस्सों के लिए देखते रहें।
चर
अधिकांश प्रोग्रामिंग भाषा चर के उपयोग की अनुमति देती हैं, जो केवल कंटेनर हैं जो मान रखते हैं। पावरशेल में, हमारे पास चर भी हैं और वे उपयोग करना वास्तव में आसान हैं। "फर्स्टनाम" नामक एक चर बनाने का तरीका यहां दिया गया है और इसे "टेलर" मान दें।
$FirstName = “Taylor”
पहली बात यह है कि ज्यादातर लोग पूछते हैं कि हम चर नाम के सामने एक डॉलर का चिह्न क्यों डालते हैं, और यह वास्तव में एक बहुत अच्छा सवाल है। असल में, डॉलर का संकेत केवल खोल के लिए एक छोटा सा संकेत है कि हम चर की सामग्री (कंटेनर के अंदर क्या सोचते हैं) तक पहुंचना चाहते हैं और कंटेनर स्वयं नहीं। PowerShell में, परिवर्तनीय नामों में डॉलर चिह्न शामिल नहीं होता है, जिसका अर्थ है कि उपरोक्त उदाहरण में चर नाम वास्तव में "फर्स्टनाम" है।
PowerShell में, आप वेरिएबल PSDrive में बनाए गए सभी चर देख सकते हैं।
gci variable:
Remove-Item Variable:FirstName
चरों में एक ही वस्तु को शामिल करने की आवश्यकता नहीं है; आप एक चर में आसानी से एकाधिक वस्तुओं को स्टोर कर सकते हैं। उदाहरण के लिए, यदि आप एक चर में चल रही प्रक्रियाओं की एक सूची स्टोर करना चाहते हैं, तो आप इसे केवल गेट-प्रोसेस का आउटपुट असाइन कर सकते हैं।
$Proc = Get-Process
यह समझने की चाल यह याद रखना है कि बराबर चिह्न के दाईं ओर हमेशा मूल्यांकन किया जाता है। इसका मतलब यह है कि यदि आप चाहें तो दाएं हाथ की ओर एक पूरी पाइपलाइन हो सकती है।
$CPUHogs = Get-Process | Sort CPU -Descending | select -First 3
CPUHogs चर में अब सबसे अधिक CPU का उपयोग कर तीन चल रही प्रक्रियाएं होंगी।
$CPUHogs.Kill()
जो संग्रह में सभी तीन प्रक्रियाओं को मार देगा। यदि आप चर में एक ऑब्जेक्ट तक पहुंचना चाहते हैं, तो आपको इसे सरणी की तरह व्यवहार करना होगा।
$CPUHogs[0]
ऐसा करने से आपको संग्रह में पहली वस्तु मिल जाएगी।
पकड़े मत जाओ!
PowerShell में वेरिएबल्स को डिफ़ॉल्ट रूप से कम से कम टाइप किया जाता है जिसका अर्थ है कि उनमें किसी भी प्रकार का डेटा हो सकता है, ऐसा लगता है कि यह हर समय पावरशेल में नए कॉमर्स को पकड़ता है!
$a = 10
$b = ‘20’
तो हमारे पास दो चर हैं, एक में एक स्ट्रिंग है और दूसरा एक पूर्णांक है। तो अगर आप उन्हें जोड़ते हैं तो क्या होता है? यह वास्तव में इस बात पर निर्भर करता है कि आप उन्हें किस क्रम में जोड़ते हैं।
$a + $b = 30
जबकि
$b + $a = 2010
पहले उदाहरण में, पहला ऑपरेंड एक पूर्णांक है, $ ए, इसलिए पावरशेल सोचता है कि आप गणित करने की कोशिश कर रहे हैं और इसलिए किसी अन्य ऑपरेंड को पूर्णांक में बदलने की कोशिश भी करते हैं। हालांकि, दूसरे उदाहरण में पहला ऑपरेंड एक स्ट्रिंग है, इसलिए पावरशेल बस शेष ऑपरेटरों को तारों में बदल देता है और उन्हें जोड़ता है। अधिक उन्नत स्क्रिप्टर्स वैरिएबल को उस प्रकार के प्रकार से कास्ट करके इस तरह के गॉचा को रोकते हैं, जिसकी वे अपेक्षा कर रहे हैं।
[int]$Number = 5 [int]$Number = ‘5’
उपर्युक्त दोनों का परिणाम संख्या चर के साथ एक पूर्णांक वस्तु युक्त 5 के मान के साथ होगा।
इनपुट और आउटपुट
चूंकि पावरशेल चीजों को स्वचालित करने के लिए है, इसलिए आप जहां भी संभव हो, जानकारी के लिए उपयोगकर्ताओं को संकेत देने से बचना चाहते हैं। इसके साथ ही, ऐसे समय होने जा रहे हैं जहां आप इससे बच नहीं सकते हैं, और उन समय के लिए हमारे पास रीड-होस्ट cmdlet है। इसका उपयोग करना वास्तव में सरल है:
$FirstName = Read-Host –Prompt ‘Enter your first name’
Write-Output “How-To Geek Rocks!”