När vi arbetar med PowerShell är det första vi stöter på kommandon (Cmdlets).
Kommandoanropet ser ut så här:
Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]
Hjälp
Hjälp i PowerShell nås med kommandot Get-Help. En av parametrarna kan specificeras: exempel, detaljerad, fullständig, online, showWindow.
Get-Help Get-Service -full returnerar den fullständiga beskrivningen av hur kommandot Get-Service fungerar
Get-Help Get-S* visar alla tillgängliga kommandon och funktioner som börjar med Get-S*
Det finns också detaljerad dokumentation på den officiella Microsoft-webbplatsen.
Här är ett exempel på hjälp för kommandot Get-Evenlog
Om parametrar är omgivna av hakparenteser [], är de valfria.
Det vill säga, i det här exemplet krävs namnet på själva loggen och namnet på parametern
Om du tittar på EntryType-parametern kan du se värdena som är omgivna av parenteser. För den här parametern kan vi bara använda fördefinierade värden i hängslen.
Information om huruvida parametern krävs kan ses i beskrivningen nedan i fältet Obligatoriskt. I exemplet ovan är After-attributet valfritt eftersom Required är inställt på false. Därefter ser vi fältet Position mittemot som säger Named. Det betyder att du bara kan referera till parametern med namn, det vill säga:
Get-EventLog -LogName Application -After 2020.04.26
Eftersom parametern LogName hade siffran 0 istället för Named, betyder det att vi kan referera till parametern utan ett namn, men genom att specificera den i önskad sekvens:
Get-EventLog Application -After 2020.04.26
Låt oss anta denna ordning:
Get-EventLog -Newest 5 Application
Alias
För att vi ska kunna använda de vanliga kommandona från konsolen i PowerShell finns det alias (Alias).
Ett exempelalias för kommandot Set-Location är cd.
Det vill säga istället för att anropa kommandot
Set-Location “D:”
vi kan använda
cd “D:”
historik
För att se historiken för kommandoanrop kan du använda Get-History
Utför kommando från historiken Invoke-History 1; Åberopa historik 2
Rensa historik
Pipeline
En pipeline i powershell är när resultatet av den första funktionen skickas till den andra. Här är ett exempel som använder pipeline:
Get-Verb | Measure-Object
Men för att bättre förstå pipelinen, låt oss ta ett enklare exempel. Har ett team
Get-Verb "get"
Om du anropar Get-Help Get-Verb -Full hjälp, kommer vi att se att Verb-parametern tar pipline-inmatning och ByValue skrivs inom parentes.
Det betyder att vi kan skriva om Get-Verb "get" till "get" | GetVerb.
Det vill säga, resultatet av det första uttrycket är en sträng och det skickas till Verb-parametern för kommandot Get-Verb via pipline-inmatning efter värde.
Pipline-ingång kan också vara ByPropertyName. I det här fallet skickar vi ett objekt som har en egenskap med ett liknande namn Verb.
variabler
Variabler är inte starkt skrivna och anges med en $ framför
$example = 4
Symbolen > betyder att data ska läggas in
Till exempel, $example > File.txt
Med detta uttryck kommer vi att lägga in data från variabeln $example i en fil
Samma som Set-Content -Value $example -Path File.txt
arrayer
Arrayinitiering:
$ArrayExample = @(“First”, “Second”)
Tom array-initiering:
$ArrayExample = @()
Få värde efter index:
$ArrayExample[0]
Få hela arrayen:
$ArrayExample
Lägga till ett element:
$ArrayExample += “Third”
$ArrayExample += @(“Fourth”, “Fifth”)
Sortera efter:
$ArrayExample | Sort
$ArrayExample | Sort -Descending
Men själva arrayen förblir oförändrad med denna sortering. Och om vi vill att matrisen ska ha sorterad data, måste vi tilldela de sorterade värdena:
$ArrayExample = $ArrayExample | Sort
Det finns inget sätt att ta bort ett element från en array i PowerShell, men du kan göra det så här:
$ArrayExample = $ArrayExample | where { $_ -ne “First” }
$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
Ta bort en array:
$ArrayExample = $null
Loops
Slingsyntax:
for($i = 0; $i -lt 5; $i++){}
$i = 0
while($i -lt 5){}
$i = 0
do{} while($i -lt 5)
$i = 0
do{} until($i -lt 5)
ForEach($item in $items){}
Gå ur brytslingan.
Hoppa över fortsätt-elementet.
Villkorliga uttalanden
if () {} elseif () {} else
switch($someIntValue){
1 { “Option 1” }
2 { “Option 2” }
default { “Not set” }
}
Funktion
Funktionsdefinition:
function Example () {
echo &args
}
Funktionslansering:
Example “First argument” “Second argument”
Definiera argument i en funktion:
function Example () {
param($first, $second)
}
function Example ($first, $second) {}
Funktionslansering:
Example -first “First argument” -second “Second argument”
undantag
try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}
Källa: will.com