कौन नहीं चाहता कि वे एक जादूगर हो सकें और कुछ शब्द बोलकर जादुई चीजें घटित कर सकें? खैर, हम आपको यह दिखाने में सक्षम नहीं हैं कि जादूगर कैसे बना जाए, लेकिन हम आपको थोड़ा कंप्यूटर जादू करना दिखा सकते हैं।
यदि आपके पास Windows 7 वाला एक Windows कंप्यूटर है, तो आपके पास PowerShell है। साथ ही, यदि आपके पास Windows 7 वाला कंप्यूटर है, तो कृपया सुरक्षा के लिए इसे अपडेट करें।
लेकिन यह लेख केवल Windows लोगों के लिए नहीं है। PowerShell का नवीनतम संस्करण मुफ्त है और इसे Mac और Linux कंप्यूटर्स पर इंस्टॉल और उपयोग किया जा सकता है।
यह महत्वपूर्ण है क्योंकि आप PowerShell के बारे में जो सीखते हैं उसका उपयोग अब लगभग किसी भी कंप्यूटर पर किया जा सकता है। कौन जानता है? आप इस कौशल को अगले स्तर पर ले जा सकते हैं और सूचना प्रौद्योगिकी में करियर में उद्यम कर सकते हैं।
PowerShell क्या है?
Microsoft की ओर से हाई-टेक उत्तर यह है कि यह एक, "...कमांड-लाइन शेल है जिसे विशेष रूप से सिस्टम एडमिनिस्ट्रेटर्स के लिए डिज़ाइन किया गया है।" डराने वाला लगता है। लेकिन यह नहीं है। क्या आप अपने कंप्यूटर का ख्याल रखते हैं? हां, तो आप अपने घर में सिस्टम एडमिनिस्ट्रेटर हैं।
क्या आप क्लिक और कीस्ट्रोक्स के साथ अपने कंप्यूटर को बताते हैं कि क्या करना है? हां, तो कमांड-लाइन शेल को बस एक और विंडो के रूप में सोचें जिसमें आप चीजें टाइप करके अपने कंप्यूटर को बताते हैं कि क्या करना है। आप यह कर सकते हैं।
PowerShell एक प्रोग्रामिंग भाषा की तरह है, लेकिन अधिकांश की तरह गूढ़ नहीं। यह वास्तव में नियमित अंग्रेजी की तरह बहुत पढ़ता है, जो कुछ ऐसा था जिसके लिए Microsoft प्रयासरत था ताकि इसे गैर-प्रोग्रामर्स द्वारा अपनाया जा सके।
यह कुछ कमांड की लाइनें लिखने का एक तरीका है, जिसे स्क्रिप्ट कहा जाता है, ताकि Windows ऑपरेटिंग सिस्टम वह करे जो आप चाहते हैं कि वह करे। फिर, आप उन लाइनों को एक फाइल में सेव कर सकते हैं और इसे एक क्लिक से चला सकते हैं या इसे समय-समय पर चलाने के लिए शेड्यूल कर सकते हैं।
PowerShell से आप क्या कर सकते हैं?
PowerShell का उच्च-स्तरीय बिंदु कार्यों को स्वचालित करने में सक्षम होना है, ताकि आपको सांसारिक चीजों को बार-बार करने में अपना समय बर्बाद न करना पड़े। एक पेशेवर सिस्टम एडमिनिस्ट्रेटर के लिए, यह कुछ ऐसा हो सकता है जैसे नए उपयोगकर्ता बनाना, उनके लिए पासवर्ड जनरेट करना, और उनके नए सुपरवाइजर को विवरण के साथ एक ईमेल भेजना।
मैन्युअल रूप से किया गया, क्लिक और टाइपिंग के साथ, उस प्रक्रिया में 5 मिनट से लेकर एक घंटे या अधिक तक लग सकते हैं। सही स्क्रिप्ट्स के साथ, सिस्टम एडमिनिस्ट्रेटर को उस प्रक्रिया के किसी भी हिस्से को करने की आवश्यकता नहीं हो सकती है।
लेकिन आप जानना चाहते हैं कि आप घर पर PowerShell से क्या कर सकते हैं। बहुत कुछ ऐसा जो आपको बार-बार करना पसंद नहीं है। अपने हार्ड ड्राइव पर जगह खाली करने के लिए अस्थायी और लॉग फाइलें हटाएं जिन्हें आप नहीं चाहते।
अपने बच्चे के कंप्यूटर पर कर्फ्यू लगाएं। फाइलों का एक समूह रीनेम या व्यवस्थित करें। यही PowerShell की सुंदरता है। आपके कंप्यूटर पर आप लगभग कुछ भी कर सकते हैं, आप एक PowerShell स्क्रिप्ट बना सकते हैं उसे स्वचालित करने और एक क्लिक या शेड्यूल पर चलाने के लिए।
PowerShell का उपयोग कैसे करें?
PowerShell के साथ काम करने का सबसे आसान तरीका PowerShell Integrated Scripting Environment (ISE) में है। आप इसे Start पर क्लिक करके और Windows 10 में सर्च बार में powershell ise टाइप करके ढूंढ सकते हैं। आपको यह नीचे दिखाए अनुसार देखना चाहिए।
पहली बार जब हम इसका उपयोग करते हैं, तो हम इसे Administrator के रूप में चलाने जा रहे हैं। ऐसा करने के लिए, आपके पास अपने कंप्यूटर पर एडमिनिस्ट्रेटर अधिकार होने चाहिए। अपने Start Menu में, PowerShell ISE पर राइट-क्लिक करें, फिर Run as Administrator पर क्लिक करें।
आपको एक User Access Control (UAC) चेतावनी पॉप-अप मिल सकती है जो पूछती है कि क्या आप वाकई ऐसा करना चाहते हैं। Yes पर क्लिक करें।
अब आप PowerShell IDE देख रहे हैं। विंडो का शीर्ष फलक (1) स्क्रिप्टिंग फलक है। यह वह जगह है जहां आप अपनी स्क्रिप्ट लिखेंगे। विंडो का निचला फलक (2) कंसोल क्षेत्र है। जब आप अपनी स्क्रिप्ट का परीक्षण करते हैं, तो आप इस फलक में आउटपुट देखेंगे।
यह वह जगह भी है जहां आप त्रुटि संदेश और ऐसी चीजें देखेंगे जो आपकी स्क्रिप्ट को ठीक करने और बेहतर बनाने में मदद करेंगी। विंडो के दाईं ओर का फलक (3) कमांड ऐड-ऑन है। इसे उन सभी PowerShell कमांड्स के शब्दकोश के रूप में सोचें जो आपके लिए उपलब्ध हैं।
PowerShell किसी भी स्क्रिप्ट को चलाने के लिए सेट नहीं आता है सिवाय उन के जो पहले से Windows का हिस्सा हैं। आपको इसे बदलने की आवश्यकता होगी ताकि आप अपनी खुद की स्क्रिप्ट चला सकें।
स्क्रिप्टिंग विंडो में, निम्नलिखित कॉपी और पेस्ट करें:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy भाग को cmdlet (कमांडलेट उच्चारित) कहा जाता है। Cmdlets शक्तिशाली चीजें हैं। उन्हें Windows को दिए जा सकने वाले छोटे कमांड के रूप में सोचें, और Windows आपके कमांड को संतुष्ट करने के लिए अधिक जटिल सामान का एक गुच्छा करेगा।
एक सादृश्य होगा अपने बच्चे को उनका कमरा साफ करने के लिए कहना। छोटा और मुद्दे पर। यदि आपका बच्चा कमरा साफ करने में कुशल है, तो वे जाएंगे और अपना बिस्तर बनाएंगे, अपनी लॉन्ड्री को बास्केट में डालेंगे, अपने खिलौनों और किताबों को शेल्फ पर रखेंगे, और शायद फर्श को वैक्यूम भी करेंगे। वे समझते हैं कि cmdlet Clean-YourRoom का मतलब वह सब था।
विंडो के शीर्ष पर, आपको एक हरा तीर头 दिखाई देगा। कमांड चलाने के लिए उस पर क्लिक करें।
-ExecutionPolicy भाग Set-ExecutionPolicy को बता रहा है कि कौन सी पॉलिसी सेट करनी है। यह एक पैरामीटर है। यह कह रहा है, "मैं चाहता हूं कि आप इन दिशानिर्देशों के भीतर काम करें और विशेष रूप से यह करें। यह इसे RemoteSigned की विशिष्ट पॉलिसी का उपयोग करने के लिए कहता है।
RemoteSigned पॉलिसी बताती है कि PowerShell किसी भी स्क्रिप्ट को निष्पादित या चला नहीं सकता जिसे इंटरनेट से डाउनलोड किया गया था जब तक कि यह एक विश्वसनीय प्रकाशक द्वारा हस्ताक्षरित न हो।
एक घुमावदार तरीके से, यह PowerShell को बताता है कि स्थानीय रूप से बनाई गई किसी भी स्क्रिप्ट को चलाना ठीक है, क्योंकि उन पर दूरस्थ विश्वसनीय प्रकाशक द्वारा हस्ताक्षर किए जाने की आवश्यकता नहीं है। अब, आपकी PowerShell स्क्रिप्ट आपके कंप्यूटर पर आपके द्वारा लिखी गई किसी भी स्क्रिप्ट को चलाने में सक्षम होगी।
आइए एक स्क्रिप्ट देखें जो अस्थायी फाइलों को हटाती है। यह CCleaner जितना शक्तिशाली या पूरी तरह से नहीं है, लेकिन CCleaner अपनी समस्याओं के सेट के साथ आता है।
PowerShell का उपयोग करके अपने हार्ड ड्राइव पर जगह बनाएं
हम इस स्क्रिप्ट को लाइन दर लाइन तोड़ेंगे, ताकि आप देख सकें कि यह कैसे काम करती है। अंत में, स्क्रिप्ट पूरी दिखाई जाएगी ताकि आप चाहें तो इसे कॉपी और पेस्ट कर सकें।
$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"
डॉलर साइन के सामने कुछ भी एक वेरिएबल नाम है। इसे एक वॉलेट की तरह सोचें जिसमें मूल्यवान सामान रखा जाए। वॉलेट हमें डॉलर साइन की याद दिलाता है, मूल्यवान वेरिएबल जैसा लगता है, इसलिए हम इसे भी याद रखेंगे। हम $TempFileLocation नामक एक वॉलेट, या वेरिएबल बना रहे हैं। बराबर का साइन PowerShell को बताता है कि उस वेरिएबल में क्या रखना है।
इस मामले में, हम Windows की अस्थायी फाइलों के स्थान को रख रहे हैं - C:\Users\username\AppData\Local\Temp\*। हम इसे दो कारणों से कर रहे हैं; यह एक ऐसा स्थान है जो फाइलों को हटाने के लिए हमेशा सुरक्षित है, और हम इसका उपयोग PowerShell को यह बताने के लिए करने जा रहे हैं कि फाइलों को हटाने के लिए उसे कहां जाना चाहिए।
जहां उस स्थान में username लिखा है, इसे अपने यूजरनेम से बदलें। वह यूजरनेम है जिसका उपयोग आप अपने कंप्यूटर में लॉग इन करने के लिए करते हैं। अंत में तारांकन (*) एक वाइल्ड कार्ड है। यह Temp फ़ोल्डर में सब कुछ दर्शाता है, क्योंकि Temp फ़ोल्डर में सब कुछ अस्थायी है और हम इसे हटाना चाहते हैं।
स्थान के चारों ओर डबल-कोट्स भी महत्वपूर्ण हैं। यह PowerShell को बताता है कि अंदर जो है वह एक स्ट्रिंग है। स्ट्रिंग को अक्षरों और वर्णों की एक स्ट्रिंग के रूप में सोचें। यदि यह सामान्य संख्याएं होतीं, तो हम कोट्स का उपयोग नहीं करते।
$TempFile = Get-ChildItem $TempFileLocation -Recurse
हम एक और वेरिएबल बना रहे हैं। इस बार हम वेरिएबल $TempFile में रखने के लिए कुछ लेकर आने के लिए एक कमांड का उपयोग करने जा रहे हैं।
Get-ChildItem
cmdlets जैसे Get-ChildItem के बारे में आप एक और चीज देखेंगे कि यह पूरी तरह से पठनीय है। देखें कि पहला शब्द एक क्रिया कैसे है? Cmdlets सभी क्रिया शब्दों से शुरू होते हैं, इसलिए आप तुरंत जानते हैं कि यह क्या कर रहा है। ChildItem दो संज्ञाएं हैं।
Cmdlet का दूसरा भाग हमेशा हमें बताएगा कि PowerShell किस पर कार्रवाई लागू करेगा। ChildItem का अर्थ है एक पैरेंट स्थान के सभी बच्चे। यह कहने जैसा है कि एक फ़ोल्डर में मौजूद सभी फाइलें प्राप्त करें, फाइलें बच्चे हैं और फ़ोल्डर पैरेंट है।
Cmdlet किसके चाइल्ड आइटम प्राप्त कर रहा है? वेरिएबल $TempFileLocation में सब कुछ। PowerShell उस स्थान पर जाएगा जिसे हमने पहले $TempFileLocation में रखा था और वहां मौजूद सभी चाइल्ड आइटम प्राप्त करेगा। फिर, यह उन्हें वेरिएबल $TempFile में डाल देगा।
तो -Recurse भाग के साथ क्या है? यह Get-ChildItem को उस स्थान पर सब कुछ के माध्यम से जाने के लिए कह रहा है। पैरेंट फ़ोल्डर के अंदर तुरंत फाइलें प्राप्त न करें। यदि उस फ़ोल्डर में फ़ोल्डर हैं, तो उनके सभी बच्चे भी प्राप्त करें, और उनके बच्चे और इसी तरह। हम उन सभी को प्राप्त करने जा रहे हैं।
$TempFileCount = ($TempFile).count
हां, हम $TempFileCount नामक एक तीसरा वेरिएबल बना रहे हैं, और हम उस वेरिएबल में एक नंबर रखने जा रहे हैं। नंबर कहां है? ठीक है, ($TempFile).count हमें वह नंबर देगा। आपने शायद पता लगा लिया है कि .count भाग उन सभी फाइलों की गिनती करेगा जिन्हें हमने अभी $TempFile में स्टोर किया था।
हमने ऐसा क्यों किया? ज्यादातर क्योंकि यह जानना अच्छा है कि हम स्क्रिप्ट के बाकी हिस्से के साथ कितनी बेकार फाइलें साफ कर रहे हैं ताकि हम बता सकें कि यह कितना प्रभावी था।
if($TempFileCount -eq 0)
अब हम एक सशर्त कथन सेट कर रहे हैं। आप देख सकते हैं कि यह 'if' पूछ रहा है। यदि क्या? यदि ब्रैकेट में चीज सच या झूठी है। ब्रैकेट महत्वपूर्ण हैं, अन्यथा If को पता नहीं चलेगा कि क्या तुलना करनी है। यहां, यह पूछ रहा है कि क्या वेरिएबल $TempFileCount में संग्रहीत नंबर शून्य के बराबर है।
-eq बराबर के लिए शॉर्टहैंड है। यह एक प्रकार का तुलना ऑपरेटर है। यह अपने बच्चों को बताने जैसा है, "अगर तुम्हारा कमरा साफ है, बढ़िया, हम कुछ करने जा रहे हैं..." यह कथन कह रहा है कि यदि $TempFileCount में संग्रहीत नंबर शून्य के बराबर है तो अगली चीज करो।
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
यह वह चीज है जो होगी यदि $TempFileCount शून्य है। कर्ली ब्रैकेट महत्वपूर्ण हैं। वे PowerShell को बताते हैं कि केवल वही करें जो उनके अंदर है यदि $TempFileCount शून्य के बराबर है।
यह होस्ट, या स्क्रीन पर लिखेगा, "There are no files in the folder C:\Users\username\Appdata\Local\Temp\*"। अंत में पैरामीटर, -ForegroundColor PowerShell को टेक्स्ट को हरा बनाने के लिए कहता है। यह केवल इसे एक त्रुटि संदेश से अलग करना आसान बनाता है जो सामान्य रूप से लाल होता है।
Else
आप जानते हैं कि else का क्या मतलब है। यह "तुम्हारा कमरा बेहतर साफ हो या फिर..." का हिस्सा है यह जांचने का कि क्या तुम्हारे बच्चे ने अपना कमरा साफ किया। यह वही होगा जो होगा यदि $TempFileCount शून्य नहीं है।
{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}
यह कहता है $TempFile में संग्रहीत वर्तमान स्थान पर जाएं। इसके बाद का ऊर्ध्वाधर रेखा एक पाइप कहलाती है। यह वास्तविक जीवन के पाइप की तरह काम करता है क्योंकि यह PowerShell को $TempFile की सामग्री को cmdlet में फ़नल करने के लिए कहता है, मानो पानी को वॉशिंग मशीन में पाइप किया जा रहा हो। फिर cmdlet Remove-Item वही करता है जो वह कहता है; यह उस स्थान पर जो कुछ भी है उसे हटा देता है।
-WhatIf पैरामीटर इस चरण में बहुत महत्वपूर्ण है। यह PowerShell को कमांड चलाने के लिए कहता है, लेकिन केवल इसे आज़माएं, कुछ भी न हटाएं। बस हमें दिखाएं कि क्या होगा अगर हम वास्तव में ऐसा करते।
यह आपको अपने कंप्यूटर पर कुछ भी बदले बिना कमांड का परीक्षण करने की अनुमति देता है। -WhatIf को तब तक छोड़ दें जब तक आप सहज न हों कि स्क्रिप्ट वही करने जा रही है जो आप चाहते हैं और कुछ नहीं। फिर बस इसे हटा दें और स्क्रिप्ट अपना काम करेगी।
पैरामीटर -Confirm:$false स्क्रिप्ट को यह पूछने से रोकता है कि क्या आप वास्तव में फ़ाइल हटाना चाहते हैं। आप जानते हैं कि -Recurse क्या करता है। -Force का मतलब है उस चीज को कोई फर्क नहीं पड़ता हटाएं। -WarningAction को SilentlyContinue पर सेट किया गया है।
यह स्क्रिप्ट को आपके द्वारा हटाई जा रही चीजों के बारे में चेतावनी देने से रोकता है। -ErrorAction को SilentlyContinue पर सेट किया गया है ताकि यदि प्रक्रिया में किसी भी प्रकार की त्रुटि हो, तो यह बस चलती रहे।
अब हम अंतिम लाइन पर हैं।
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
बस पहले की तरह Write-Host ने किया, यह निम्नलिखित वाक्य को आउटपुट करने जा रहा है, इसलिए हम जानते हैं कि क्या हुआ। यह हमें बताएगा कि फ़ोल्डर से कितनी फाइलें हटाई गईं जिसे उसने अभी प्रोसेस किया और इसे हरे रंग में करेगा ताकि इसे देखना आसान हो।
आइए पूरी स्क्रिप्ट को एक साथ देखें:
$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count
if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}
आप इसे अपने PowerShell ISE में कॉपी और पेस्ट कर सकते हैं और इसे delete-TemporaryFiles.ps1 जैसा कुछ नाम देकर सेव कर सकते हैं। आप cmdlets के नामकरण कन्वेंशन के साथ भी बने रह सकते हैं अब जब आप उन्हें समझते हैं।
यदि कोड किसी कारण से आपके लिए काम नहीं कर रहा है, तो आप हमारे द्वारा बनाई गई PowerShell स्क्रिप्ट को भी डाउनलोड कर सकते हैं और बस इसे चला सकते हैं। पहले इसे अनज़िप करें ताकि स्क्रिप्ट फाइल देख सकें।
जब भी आप इस स्क्रिप्ट को चलाना चाहते हैं, बस इस पर राइट-क्लिक करें और Run with PowerShell चुनें। एक PowerShell कंसोल एक या दो सेकंड के लिए पॉप अप होगा, जबकि आपकी स्क्रिप्ट अपना काम करती है, और फिर गायब हो जाएगी यदि कोई त्रुटि नहीं है।
मैं PowerShell के बारे में और कहां सीख सकता हूं?
यह बहुत लगता है! आपकी पहली PowerShell स्क्रिप्ट के लिए यह एक उचित मात्रा है। यदि आप यहां तक पहुंचे हैं, तो खुद की सराहना करें। आपने आज बहुत कुछ सीखा है, लेकिन अब आप और सीखना चाहते हैं। यह बहुत अच्छा है!
PowerShell के बारे में अधिक सीखने के लिए इंटरनेट पर बहुत सारे संसाधन हैं। शुरू करने के लिए एक अच्छी जगह हमारा लेख है, "कमांड लाइन या PowerShell के माध्यम से स्टार्टअप प्रोग्राम्स की सूची जनरेट करें"। फिर इन अन्य संसाधनों को देखें:
- Microsoft PowerShell के साथ शुरुआत - Microsoft Virtual Academy
- PowerShell Tutorial - TutorialsPoint.com