प्रोग्रामिंग भाषा PowerShell

अवलोकन

PowerShell एक कार्य स्वचालन और कॉन्फ़िगरेशन प्रबंधन ढांचा है जिसे Microsoft द्वारा विकसित किया गया है, जिसमें एक कमांड-लाइन शेल और एक संबंधित स्क्रिप्टिंग भाषा शामिल है। प्रारंभ में सिस्टम प्रशासकों के लिए लक्षित, PowerShell कार्यों को स्वचालित करने और स्क्रिप्ट और cmdlets (हल्के कमांड) का उपयोग करके सिस्टम कॉन्फ़िगरेशन प्रबंधित करने के लिए एक शक्तिशाली इंटरफ़ेस प्रदान करता है। वर्षों के दौरान, PowerShell की क्षमताओं में वृद्धि हुई है और यह महत्वपूर्ण रूप से विकसित हुआ है, .NET ढांचे के साथ इसके एकीकरण पर जोर देते हुए और PowerShell Core के साथ क्रॉस-प्लेटफ़ॉर्म उपयोग की अनुमति देते हुए।

ऐतिहासिक पहलू

निर्माण

PowerShell को 2006 में "Monad" के रूप में पहली बार पेश किया गया था, मुख्य रूप से Windows पर सिस्टम प्रशासन को बढ़ाने के लिए। इसने उपयोगकर्ताओं और अंतर्निहित सिस्टम प्रक्रियाओं के बीच एक पुल बनाया, जो कमांड-लाइन स्क्रिप्टिंग पर ध्यान केंद्रित करता है। इसके डिज़ाइन पर Unix शेल का प्रभाव था, जिसमें .NET ढांचे की क्षमताओं के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग पर जोर दिया गया था।

विकास

2012 में Windows प्रबंधन ढांचे (WMF) 3.0 के रिलीज़ के साथ, PowerShell अधिक मजबूत हो गया, जिसमें वर्कफ़्लो और मॉड्यूल जैसी सुविधाएँ शामिल की गईं। 2016 में PowerShell Core (संस्करण 6) का आगमन एक महत्वपूर्ण मील का पत्थर था, क्योंकि इसे macOS और Linux पर चलाने के लिए डिज़ाइन किया गया था, जिससे इसकी पहुंच Windows पारिस्थितिकी तंत्र से परे बढ़ गई।

वर्तमान स्थिति

अब तक, PowerShell का विकास एक ओपन-सोर्स मॉडल के साथ जारी है, जो दुनिया भर के डेवलपर्स से योगदान की अनुमति देता है। नवीनतम संस्करणों में उन्नत कार्यक्षमताएँ शामिल की गई हैं, जिससे यह न केवल सिस्टम प्रशासन के लिए बल्कि विभिन्न प्लेटफार्मों पर व्यापक स्क्रिप्टिंग और स्वचालन कार्यों के लिए प्रासंगिक हो गया है। इसका .NET के साथ संबंध गहरा हो गया है, जिससे यह विभिन्न वातावरणों में डेवलपर्स के लिए एक शक्तिशाली स्क्रिप्टिंग उपकरण के रूप में स्थापित हो गया है।

सिंटैक्स विशेषताएँ

Cmdlets

PowerShell कमांड, जिन्हें cmdlets के रूप में जाना जाता है, क्रिया-नाम नामकरण सम्मेलन का पालन करते हैं।

Get-Process

पाइपलाइनिंग

PowerShell पाइपिंग का समर्थन करता है, जिससे एक cmdlet का आउटपुट दूसरे के लिए इनपुट के रूप में कार्य करता है।

Get-Process | Where-Object { $_.CPU -gt 100 }

वेरिएबल्स

PowerShell में वेरिएबल्स $ के साथ प्रारंभ होते हैं और विभिन्न प्रकार के डेटा प्रकारों को धारण कर सकते हैं।

$greeting = "Hello, World!"

एरे और हैश टेबल

PowerShell स्वाभाविक रूप से डेटा हेरफेर के लिए एरे और हैश टेबल का समर्थन करता है।

$array = @(1, 2, 3)
$hash = @{"key" = "value"}

फ़ंक्शन

आप PowerShell में पुन: प्रयोज्य फ़ंक्शन परिभाषित कर सकते हैं।

function Greet {
    param($name)
    "Hello, $name!"
}

त्रुटि प्रबंधन

PowerShell में त्रुटि प्रबंधन को try/catch ब्लॉकों का उपयोग करके प्रबंधित किया जा सकता है।

try {
    Get-Process -Name "nonexistent"
} catch {
    Write-Host "An error occurred: $_"
}

स्क्रिप्टिंग

PowerShell स्क्रिप्ट को .ps1 एक्सटेंशन के साथ सहेजा जाता है और इसे सीधे निष्पादित किया जा सकता है।

# myscript.ps1
Write-Host "Running my PowerShell script"

ऑब्जेक्ट-ओरिएंटेड

PowerShell डेटा को ऑब्जेक्ट के रूप में मानता है, जिससे गुणों को एक्सेस और हेरफेर करना आसान हो जाता है।

$process = Get-Process -Name "powershell"
$process.Id

मॉड्यूल

PowerShell आपको फ़ंक्शंस को मॉड्यूल के रूप में पैकेज और वितरित करने की अनुमति देता है।

Import-Module MyModule

रिमोटिंग

PowerShell रिमोटिंग का समर्थन करता है, जिससे दूरस्थ मशीनों पर कमांड निष्पादित करना संभव होता है।

Enter-PSSession -ComputerName Server01

डेवलपर उपकरण और रनटाइम

रनटाइम

PowerShell .NET रनटाइम पर चलता है, जो PowerShell स्क्रिप्ट और cmdlets के निष्पादन को अत्यधिक कुशलता से सुविधाजनक बनाता है।

IDE और संपादक

कई IDE और संपादक PowerShell विकास का समर्थन करते हैं, जिनमें शामिल हैं:

परियोजनाएँ बनाना

PowerShell स्क्रिप्ट बनाने के लिए, डेवलपर्स किसी भी टेक्स्ट संपादक में अपना कोड लिख सकते हैं, इसे .ps1 एक्सटेंशन के साथ सहेज सकते हैं। परियोजनाओं में कई स्क्रिप्ट और मॉड्यूल शामिल हो सकते हैं, जिन्हें फ़ोल्डरों में व्यवस्थित किया जाता है।

अनुप्रयोग

PowerShell का विभिन्न क्षेत्रों में व्यापक रूप से उपयोग किया जाता है:

समान भाषाओं की तुलना

PowerShell का विभिन्न प्रोग्रामिंग भाषाओं के साथ संबंध है:

स्रोत से स्रोत अनुवाद टिप्स

PowerShell स्क्रिप्ट को उन भाषाओं में अनुवादित किया जा सकता है जो स्वचालन और स्क्रिप्टिंग कार्यों का समर्थन करती हैं, जैसे Python या Bash। जबकि कोई सीधा स्रोत से स्रोत अनुवाद उपकरण नहीं हैं, मैनुअल रूपांतरण में cmdlets को लक्षित भाषा में समकक्ष कमांड या फ़ंक्शंस में फिर से लिखना शामिल हो सकता है।

मौजूदा स्रोत से स्रोत अनुवाद उपकरणों में शामिल हैं: