PowerShell
मॉड्यूल, लिपियों और कार्य
खोज…
परिचय
PowerShell मॉड्यूल सिस्टम व्यवस्थापक, DBA और डेवलपर के लिए विस्तारशीलता लाता है। क्या यह केवल फ़ंक्शन और स्क्रिप्ट साझा करने के लिए एक विधि के रूप में है।
पुनरावृत्ति कोड से बचने के लिए पॉवर्सशेल फ़ंक्शंस हैं। देखें [पुनश्च कार्य] [1] [१]: पॉवरशेल फ़ंक्शंस
PowerShell लिपियों का उपयोग प्रशासनिक कार्यों को स्वचालित करने के लिए किया जाता है, जिनमें .NET लाइन के शीर्ष पर निर्मित कमांड-लाइन शेल और संबद्ध cmdlets होते हैं।
समारोह
एक फ़ंक्शन कोड का एक नामित ब्लॉक है जो पुन: प्रयोज्य कोड को परिभाषित करने के लिए उपयोग किया जाता है जिसे उपयोग करना आसान होना चाहिए। यह आमतौर पर एक स्क्रिप्ट के अंदर पुन: उपयोग कोड (डुप्लिकेट कोड से बचने के लिए) या एक मॉड्यूल के हिस्से के रूप में इसे कई लिपियों में दूसरों के लिए उपयोगी बनाने के लिए वितरित किया जाता है।
परिदृश्य जहां एक समारोह उपयोगी हो सकता है:
- संख्याओं के समूह के औसत की गणना करें
- चल रही प्रक्रियाओं के लिए एक रिपोर्ट बनाएं
- एक फ़ंक्शन लिखें जो परीक्षण करता है एक कंप्यूटर "स्वस्थ" है कंप्यूटर को पिंग करके और
c$
-share एक्सेस करके
कार्य का उपयोग कर बनाई गई हैं function
कीवर्ड, एक-शब्द वाले नाम और एक स्क्रिप्ट निष्पादित जब समारोह नाम कहा जाता है के लिए कोड युक्त ब्लॉक द्वारा पीछा किया।
function NameOfFunction {
Your code
}
डेमो
function HelloWorld {
Write-Host "Greetings from PowerShell!"
}
उपयोग:
> HelloWorld
Greetings from PowerShell!
लिपि
एक स्क्रिप्ट एक फ़ाइल फ़ाइल होती है जिसमें फ़ाइल एक्सटेंशन .ps1
होता है जिसमें पॉवरशेल कमांड होती है जिसे स्क्रिप्ट कहते समय निष्पादित किया जाएगा। क्योंकि स्क्रिप्ट्स सहेजी गई फ़ाइलें हैं, वे कंप्यूटर के बीच स्थानांतरित करना आसान है।
लिपियों को अक्सर एक विशिष्ट समस्या को हल करने के लिए लिखा जाता है, उदा .:
- साप्ताहिक रखरखाव कार्य चलाएं
- कंप्यूटर पर समाधान / एप्लिकेशन को स्थापित और कॉन्फ़िगर करने के लिए
डेमो
MyFirstScript.ps1:
Write-Host "Hello World!"
2+2
आप फ़ाइल का पथ दर्ज करके स्क्रिप्ट चला सकते हैं:
- पूर्ण मार्ग, पूर्व।
c:\MyFirstScript.ps1
- यदि आपके PowerShell कंसोल की वर्तमान निर्देशिका
C:\
, तो सापेक्ष पथ, पूर्व.\MyFirstScript.ps1
उपयोग:
> .\MyFirstScript.ps1
Hello World!
4
एक स्क्रिप्ट भी मॉड्यूल आयात कर सकती है, इसे परिभाषित कर सकती है कि यह स्वयं के कार्य आदि हैं।
MySecondScript.ps1:
function HelloWorld {
Write-Host "Greetings from PowerShell!"
}
HelloWorld
Write-Host "Let's get started!"
2+2
HelloWorld
उपयोग:
> .\MySecondScript.ps1
Greetings from PowerShell!
Let's get started!
4
Greetings from PowerShell!
मापांक
एक मॉड्यूल संबंधित पुन: प्रयोज्य कार्यों (या cmdlets) का एक संग्रह है जो आसानी से अन्य PowerShell उपयोगकर्ताओं को वितरित किया जा सकता है और कई स्क्रिप्ट में या सीधे कंसोल में उपयोग किया जाता है। एक मॉड्यूल आमतौर पर अपनी स्वयं की निर्देशिका में सहेजा जाता है और इसमें शामिल होते हैं:
- फ़ंक्शन या बाइनरी असेंबली (
.dll
) जिसमें cmdlets युक्त.psm1
फ़ाइल एक्सटेंशन वाली एक या अधिक कोड फाइलें हैं - मॉड्यूल नाम
.psd1
मॉड्यूल नाम, संस्करण, लेखक, विवरण, जो कार्य / cmdlets प्रदान करता है आदि का वर्णन करता है। - इसके लिए अन्य आवश्यकताएं काम करने के लिए। निर्भरता, स्क्रिप्ट आदि।
मॉड्यूल के उदाहरण:
- एक मॉड्यूल जिसमें फ़ंक्शन / cmdlets होते हैं जो किसी डेटासेट पर आंकड़े प्रदर्शित करते हैं
- डेटाबेस को क्वेरी और कॉन्फ़िगर करने के लिए एक मॉड्यूल
मॉड्यूल को खोजने और आयात करने के लिए पॉवरशेल को आसान बनाने के लिए, इसे अक्सर $env:PSModulePath
मॉड्यूल-स्थानों में से एक में रखा जाता है जिसे $env:PSModulePath
में परिभाषित किया गया है $env:PSModulePath
।
डेमो
सूची मॉड्यूल जिन्हें ज्ञात मॉड्यूल-स्थानों में से एक में स्थापित किया गया है:
Get-Module -ListAvailable
एक मॉड्यूल आयात करें, पूर्व। Hyper-V
मॉड्यूल:
Import-Module Hyper-V
एक मॉड्यूल में उपलब्ध आदेशों की सूची, पूर्व। Microsoft.PowerShell.Archive
-module
> Import-Module Microsoft.PowerShell.Archive
> Get-Command -Module Microsoft.PowerShell.Archive
CommandType Name Version Source
----------- ---- ------- ------
Function Compress-Archive 1.0.1.0 Microsoft.PowerShell.Archive
Function Expand-Archive 1.0.1.0 Microsoft.PowerShell.Archive
उन्नत कार्य
उन्नत कार्य उसी तरह व्यवहार करते हैं जैसे कि cmdlets। PowerShell ISE में उन्नत कार्यों के दो कंकाल शामिल हैं। मेनू, एडिट, कोड स्निपेट या Ctrl + J के द्वारा इन तक पहुँच प्राप्त करें। (PS 3.0 के अनुसार, बाद के संस्करण भिन्न हो सकते हैं)
उन्नत कार्यों में शामिल प्रमुख चीजें हैं,
- फ़ंक्शन के लिए निर्मित, अनुकूलित सहायता,
Get-Help
माध्यम से सुलभ - [CmdletBinding ()] का उपयोग कर सकते हैं जो फ़ंक्शन को cmdlet की तरह कार्य करता है
- व्यापक पैरामीटर विकल्प
सरल संस्करण:
<#
.Synopsis
Short description
.DESCRIPTION
Long description
.EXAMPLE
Example of how to use this cmdlet
.EXAMPLE
Another example of how to use this cmdlet
#>
function Verb-Noun
{
[CmdletBinding()]
[OutputType([int])]
Param
(
# Param1 help description
[Parameter(Mandatory=$true,
ValueFromPipelineByPropertyName=$true,
Position=0)]
$Param1,
# Param2 help description
[int]
$Param2
)
Begin
{
}
Process
{
}
End
{
}
}
पूर्ण संस्करण:
<#
.Synopsis
Short description
.DESCRIPTION
Long description
.EXAMPLE
Example of how to use this cmdlet
.EXAMPLE
Another example of how to use this cmdlet
.INPUTS
Inputs to this cmdlet (if any)
.OUTPUTS
Output from this cmdlet (if any)
.NOTES
General notes
.COMPONENT
The component this cmdlet belongs to
.ROLE
The role this cmdlet belongs to
.FUNCTIONALITY
The functionality that best describes this cmdlet
#>
function Verb-Noun
{
[CmdletBinding(DefaultParameterSetName='Parameter Set 1',
SupportsShouldProcess=$true,
PositionalBinding=$false,
HelpUri = 'http://www.microsoft.com/',
ConfirmImpact='Medium')]
[OutputType([String])]
Param
(
# Param1 help description
[Parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true,
ValueFromRemainingArguments=$false,
Position=0,
ParameterSetName='Parameter Set 1')]
[ValidateNotNull()]
[ValidateNotNullOrEmpty()]
[ValidateCount(0,5)]
[ValidateSet("sun", "moon", "earth")]
[Alias("p1")]
$Param1,
# Param2 help description
[Parameter(ParameterSetName='Parameter Set 1')]
[AllowNull()]
[AllowEmptyCollection()]
[AllowEmptyString()]
[ValidateScript({$true})]
[ValidateRange(0,5)]
[int]
$Param2,
# Param3 help description
[Parameter(ParameterSetName='Another Parameter Set')]
[ValidatePattern("[a-z]*")]
[ValidateLength(0,15)]
[String]
$Param3
)
Begin
{
}
Process
{
if ($pscmdlet.ShouldProcess("Target", "Operation"))
{
}
}
End
{
}
}