Kaj so samodejne spremenljivke v PowerShell

Kaj So Samodejne Spremenljivke V Powershell



PowerShell ' Samodejne spremenljivke ” so bistvenega pomena za upravljanje sistema, avtomatizacijo in skriptne dejavnosti. Te spremenljivke je vgradilo izvajalno okolje PowerShell in služijo kot ograde za shranjevanje in sklicevanje na določene informacije med izvajanjem skripta ali ukaza. Učinkovito razumevanje in uporaba teh samodejnih spremenljivk lahko močno izboljšata učinkovitost in funkcionalnost skriptov PowerShell.

Namen tega članka je raziskati koncept »samodejnih spremenljivk« v PowerShell, njihov pomen in kako jih je mogoče uporabiti v različnih scenarijih.







Kaj so samodejne spremenljivke v lupini PowerShell?

Za začetek se poglobimo v definicijo ' Samodejne spremenljivke ”. Te spremenljivke so vnaprej določene in jih PowerShell samodejno ustvari med izvajanjem skripta. Služijo različnim namenom, vključno z zagotavljanjem informacij o sistemu, argumentih ukazne vrstice, s skripti povezanih podrobnostih in še veliko več.



PowerShell ponuja več »samodejnih spremenljivk« in vsaka od njih služi posebnemu namenu pri izvajanju skripta. Te spremenljivke so naslednje:



1. $PSVersionTable

Ena temeljnih samodejnih spremenljivk v lupini PowerShell je ' $PSVersionTable ”. Ta spremenljivka omogoča razvijalcem skriptov, da ugotovijo, katera različica lupine PowerShell se uporablja, kar je lahko ključnega pomena pri obravnavi združljivosti in razpoložljivosti določenih funkcij in funkcij.





S to spremenljivko so povezane naslednje lastnosti:

PSVersion: Vrne številko različice PowerShell.



Izdaja PS: Za PowerShell 4 in starejše različice ter PowerShell 5.1 v različicah sistema Windows s polnimi funkcijami ima ta lastnost vrednost »Namizje«. Ta lastnost ima vrednost Core za PowerShell 6 in novejše, pa tudi Windows PowerShell 5.1 za izdaje z nizkim odtisom, kot sta Windows Nano Server ali Windows IoT.

GitCommitId: Pridobi ID objave GitHub izvornih datotek.

VI: Beleži podatke o računalniškem sistemu, ki ga uporablja PowerShell.

Platforma: Vrne podporno platformo operacijskega sistema. Unix ima vrednost v sistemih Linux in macOS. Oglejte si $IsMacOs in $IsLinux.

PSCompatibleVersions: Vrnejo se različice PowerShell, ki so združljive s trenutno različico.

PSRemotingProtocolVersion: Vrne številko različice protokola za oddaljeno upravljanje PowerShell.

SerializationVersion: Vrne različico metode serializacije.

WSManStackVersion: Vrne številko različice sklada WS-Management.

$ PSVersionTable

2. $Args

Druga pomembna samodejna spremenljivka v PowerShell je ' $Args «, ki vsebuje niz argumentov ukazne vrstice, posredovanih skriptu ali funkciji. Ta spremenljivka omogoča razvijalcem, da dinamično obdelujejo in manipulirajo s podanimi argumenti v svojih skriptih.

Ko definirate funkcijo, lahko za deklaracijo parametrov uporabite ključno besedo »param« ali dodate seznam parametrov, ločenih z vejicami, v oklepajih za imenom funkcije. Spremenljivka »$Args« dejanja dogodka shranjuje objekte, ki služijo kot ograda za parametre dogodka dogodka, ki se obravnava:

za vsakogar ( $arg v $Args ) {
Write-Host $arg
}

3. $MyInvocation

' $MyInvocation ” podaja ključne podatke o ozadju skripta ali postopka, ki se trenutno izvaja. Ponuja lastnosti, kot so ime skripta, številka vrstice skripta in ali se skript izvaja interaktivno ali neinteraktivno. Te lastnosti pomagajo razvijalcem skriptov implementirati logiko razvejanja, definirati mehanizme za obravnavanje napak ali ustvariti smiselno beleženje in poročanje:

$ MyInvocation

4. $Error

Manj znana samodejna spremenljivka ' $Error ”, učinkovito zajame vsa sporočila o napakah ali izjeme, ki se pojavijo med izvajanjem skripta. Do »$Error« lahko dostopate, da pridobite določene podrobnosti o napakah, kot so sporočila o izjemah, sledi sklada ali kode napak, kar omogoča podrobno analizo in odpravljanje napak.

Najnovejša napaka je predstavljena s prvim objektom napake v nizu ' $Error[0] “. Uporabite lahko skupno možnost ErrorAction z vrednostjo »Ignore«, da preprečite dodajanje napak v matriko »$Error«.

Recimo, da smo vnesli točen ukaz:

ip [ onfig

Zdaj, če vnesemo cmdlet »$Error«:

$ Napaka

5. $PSCmdlet

Pri delu z moduli PowerShell je samodejna spremenljivka ' $PSCmdlet « začne veljati. Ta spremenljivka omogoča dostop do trenutnega primerka ukaza cmdlet ali funkcije, ki se kliče, kar olajša neposredno interakcijo z njegovimi lastnostmi in metodami.

Z uporabo »$PSCmdlet« lahko napredni razvijalci skriptov natančno nastavijo in izboljšajo vedenje modulov z razširitvijo ali spreminjanjem vgrajenih funkcij. Atribute in metode predmeta lahko uporabite v svojem ukazu cmdlet ali funkcijski kodi kot odgovor na merila uporabe:

funkcijo typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
odmev 'vrsta` $psCmdlet je $($psCmdlet.GetType() .Polno ime)'
}

typeof-psCmdlet

Poleg zgoraj omenjenih spremenljivk PowerShell vključuje samodejne spremenljivke, kot so $HOME, $PROFILE, $PWD in številne druge, ki služijo različnim namenom, kot je dostop do vnosa, sledenje napakam, pridobivanje informacij o okolju, upravljanje parametrov in še veliko več. Te spremenljivke so navedene spodaj:

Samodejne spremenljivke Opis
$$ Vsebuje zadnji žeton v prejšnji vrstici, ki jo je prejela seja PowerShell.
$? Shrani status izvajanja zadnjega ukaza.
$^ Vsebuje prvi žeton zadnje vrstice, ki jo je prejela seja.
$_ Predstavlja trenutni predmet v cevovodu.
$ConsoleFileName Vsebuje pot do datoteke konzole (.psc1), ki je bila nazadnje uporabljena v seji.
$EnabledExperimentalFeatures Vsebuje seznam omogočenih eksperimentalnih funkcij.
$Event Vsebuje objekt »PSEventArgs«, ki predstavlja dogodek, ki se obdeluje.
$EventArgs Vsebuje prvi argument dogodka dogodka, ki se obdeluje.
$EventSubscriber Predstavlja naročnika dogodka dogodka, ki se obdeluje.
$ExecutionContext Predstavlja kontekst izvajanja gostitelja PowerShell.
$false Predstavlja logično vrednost »False«.
$foreach Vsebuje popisovalec zanke »za vsakega«.
$HOME Vsebuje celotno pot do uporabnikovega domačega imenika.
$Host Predstavlja trenutno gostiteljsko aplikacijo za PowerShell.
$input Služi kot popisovalec za vse vnose, posredovane funkciji ali skriptu.
$IsCoreCLR Označuje, ali se seja izvaja v izvajalnem okolju .NET Core (CoreCLR).
$IsLinux Označuje, ali se seja izvaja v operacijskem sistemu Linux.
$IsMacOS Označuje, ali se seja izvaja v operacijskem sistemu MacOS.
$IsWindows Prepozna, ali se seja izvaja v operacijskem sistemu Windows.
$LASTEXITCODE Shrani izhodno kodo zadnjega izvornega programa ali skripta PowerShell.
$Matches Vsebuje ujemajoče se nize iz operatorjev »-match« in »-notmatch«.
$NestedPromptLevel Sledi trenutni ravni poziva v ugnezdenih ukazih ali scenarijih odpravljanja napak.
$null Predstavlja ničelno ali prazno vrednost.
$PID Vsebuje identifikator procesa (PID) seje PowerShell.
$PROFILE Vsebuje celotno pot profila PowerShell za trenutnega uporabnika in gostiteljsko aplikacijo.
$PSBoundParameters Vsebuje slovar parametrov, posredovanih skriptu ali funkciji, in njihovih vrednosti.
$PSCommandPath Vsebuje celotno pot in ime datoteke skripta, ki se izvaja.
$PSKultura Odraža kulturo trenutnega izvajalnega prostora PowerShell.
$PSEdition Vsebuje informacije o izdaji PowerShell.
$PSHOME Vsebuje celotno pot do namestitvenega imenika PowerShell.
$PSItem Enako kot $_, predstavlja trenutni predmet v cevovodu.
$PSScriptRoot Vsebuje celotno pot nadrejenega imenika izvajalnega skripta.
$PSSenderInfo Vsebuje informacije o uporabniku, ki je začel PSSession.
$PSUICulture Odraža kulturo uporabniškega vmesnika (UI), konfigurirano v operacijskem sistemu.
$PWD Predstavlja trenutni delovni imenik seje PowerShell.
$Sender Vsebuje predmet, ki je ustvaril dogodek.
$ShellId Vsebuje identifikator trenutne lupine.
$StackTrace Shrani sled sklada za najnovejšo napako.
$stikalo Vsebuje enumerator stavka »Switch«.
$to Nanaša se na primerek razreda v blokih skriptov, ki razširjajo razrede.
$true Predstavlja logično vrednost »True«.

Vse »samodejne spremenljivke« v lupini PowerShell najdete tako, da zaženete spodnji ukaz:

Get-Variable

Zaključek

Samodejne spremenljivke ” tvorijo hrbtenico skriptov PowerShell, ki razvijalcem omogočajo, da pridobijo informacije o sistemu, argumentih ukazne vrstice, kontekstu izvajanja skriptov in več. Z uporabo samodejnih spremenljivk, kot so »$PSVersionTable«, »$Args«, »$MyInvocation«, »$Error« in druge, lahko razvijalci skriptov PowerShell ustvarijo poenostavljene prakse sistemske administracije.