Što su automatske varijable u PowerShell-u

Sto Su Automatske Varijable U Powershell U



PowerShell-ov ' Automatske varijable ” ključni su za upravljanje sustavom, automatizaciju i aktivnosti skriptiranja. Ove varijable ugrađene su u PowerShell runtime i služe kao rezervirana mjesta za pohranjivanje i referenciranje specifičnih informacija tijekom izvršavanja skripte ili naredbe. Razumijevanje i učinkovito korištenje ovih automatskih varijabli može uvelike poboljšati učinkovitost i funkcionalnost PowerShell skripti.

Ovaj članak ima za cilj istražiti koncept 'automatskih varijabli' u PowerShell-u, njihov značaj i kako se mogu iskoristiti u različitim scenarijima.







Što su automatske varijable u PowerShell-u?

Za početak, zaronimo u definiciju ' Automatske varijable ”. Ove su varijable unaprijed definirane i automatski ih kreira PowerShell tijekom izvođenja skripte. Služe u različite svrhe, uključujući pružanje informacija o sustavu, argumente naredbenog retka, pojedinosti vezane uz skriptu i još mnogo toga.



PowerShell nudi nekoliko 'automatskih varijabli' i svaka od njih služi različitoj svrsi u izvršavanju skripte. Ove varijable su, kako slijedi:



1. $PSVersionTable

Jedna od temeljnih automatskih varijabli u PowerShell-u je ' $PSVersionTable ”. Ova varijabla omogućuje razvojnim programerima skripti da utvrde koja se verzija PowerShell-a koristi, što može biti presudno kada se razmatra kompatibilnost i dostupnost određenih značajki i funkcionalnosti.





Sljedeća svojstva povezana su s ovom varijablom:

PSV verzija: Vraća broj verzije PowerShell-a.



PSizdanje: Za PowerShell 4 i ranije, kao i PowerShell 5.1 na potpuno opremljenim verzijama sustava Windows, ovo svojstvo ima vrijednost 'Desktop'. Ova karakteristika ima vrijednost Core za PowerShell 6 i novije verzije, kao i Windows PowerShell 5.1 za izdanja s malim otiskom kao što su Windows Nano Server ili Windows IoT.

GitCommitId: Dohvaća GitHub commit ID izvornih datoteka.

VAS: Bilježi podatke o računalnom sustavu koji PowerShell koristi.

Platforma: Vraća platformu za podršku operativnog sustava. Unix ima vrijednost na Linuxu i macOS-u. Pogledajte $IsMacOs i $IsLinux.

PSCompatibleVersions: Vraćaju se verzije PowerShell-a koje su kompatibilne s trenutnom verzijom.

PSRemotingProtocolVersion: Vraća broj verzije za PowerShell protokol daljinskog upravljanja.

Verzija serijalizacije: Vraća verziju metode serijalizacije.

WSManStackVersion: Vraća broj verzije stoga WS-Managementa.

$ PSVersionTable

2. $Args

Još jedna bitna automatska varijabla u PowerShell-u je ' $Args “, koji sadrži niz argumenata naredbenog retka proslijeđenih skripti ili funkciji. Ova varijabla omogućuje programerima da dinamički obrađuju i manipuliraju danim argumentima unutar svojih skripti.

Kada definirate funkciju, možete koristiti ključnu riječ 'param' za deklariranje parametara ili možete dodati popis parametara odvojenih zarezima u zagradama nakon naziva funkcije. Varijabla '$Args' akcije događaja pohranjuje objekte koji služe kao rezervirana mjesta za parametre događaja događaja koji se obrađuje:

za svakoga ( $arg u $Args ) {
Write-Host $arg
}

3. $MyInvocation

' $MyInvocation ” varijabla daje ključne pozadinske podatke o skripti ili proceduri koja se trenutno izvodi. Nudi svojstva kao što su naziv skripte, broj retka skripte i izvodi li se skripta interaktivno ili neinteraktivno. Ova svojstva pomažu razvojnim programerima skripti implementirati logiku grananja, definirati mehanizme za rukovanje pogreškama ili generirati smisleno bilježenje i izvješćivanje:

$ MyInvocation

4. $Pogreška

Manje poznata automatska varijabla “ $Error ”, učinkovito bilježi sve poruke o pogreškama ili iznimke koje se pojave tijekom izvođenja skripte. '$Error' se može pristupiti za dohvaćanje specifičnih pojedinosti o pogrešci kao što su poruke o iznimkama, tragovi snopa ili kodovi pogrešaka, omogućujući detaljnu analizu i otklanjanje pogrešaka.

Najnovija pogreška predstavljena je prvim objektom pogreške u nizu ' $Error[0] “. Možete upotrijebiti uobičajenu opciju ErrorAction s vrijednošću 'Ignore' kako biste spriječili dodavanje pogrešaka u polje '$Error'.

Pretpostavimo da smo upisali točnu naredbu:

ip [ onfig

Sada, ako unesemo cmdlet “$Error”:

$ Greška

5. $PSCmdlet

Kada radite s modulima PowerShell, automatska varijabla ' $PSCmdlet ” stupa na snagu. Ova varijabla omogućuje pristup trenutnoj instanci cmdleta ili funkcije koja se poziva, olakšavajući izravnu interakciju s njegovim svojstvima i metodama.

Koristeći “$PSCmdlet”, napredni programeri skripti mogu fino podesiti i poboljšati ponašanje modula proširenjem ili modificiranjem ugrađenih funkcionalnosti. Možete koristiti atribute i metode objekta u svom cmdlet-u ili kodu funkcije kao odgovor na kriterije upotrebe:

funkcija typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
jeka 'vrsta ` $psCmdlet je $($psCmdlet.GetType() .Puno ime)'
}

typeof-psCmdlet

Uz gore navedene varijable, PowerShell obuhvaća automatske varijable kao što su $HOME, $PROFILE, $PWD i mnoge druge, koje služe u različite svrhe, kao što je pristup unosu, praćenje pogrešaka, dohvaćanje informacija o okruženju, upravljanje parametrima i još mnogo toga. Ove varijable navedene su u nastavku:

Automatske varijable Opis
$$ Sadrži posljednji token u prethodnom retku koji je primila PowerShell sesija.
$? Pohranjuje status izvršenja posljednje naredbe.
$^ Sadrži prvi token posljednjeg retka primljenog u sesiji.
$_ Predstavlja trenutni objekt u cjevovodu.
$ConsoleFileName Sadrži putanju datoteke konzole (.psc1) koja je posljednja korištena u sesiji.
$EnabledExperimentalFeatures Sadrži popis omogućenih eksperimentalnih značajki.
$Event Sadrži objekt 'PSEventArgs' koji predstavlja događaj koji se obrađuje.
$EventArgs Sadrži prvi argument događaja događaja koji se obrađuje.
$EventSubscriber Predstavlja pretplatnika događaja koji se obrađuje.
$ExecutionContext Predstavlja kontekst izvršavanja PowerShell hosta.
$false Predstavlja Booleovu vrijednost 'False'.
$foreach Sadrži enumerator petlje 'za svaki'.
$HOME Sadrži punu putanju korisničkog matičnog direktorija.
$Host Predstavlja trenutnu host aplikaciju za PowerShell.
$unos Služi kao popisivač za sav unos proslijeđen funkciji ili skripti.
$IsCoreCLR Pokazuje izvodi li se sesija na .NET Core Runtime (CoreCLR).
$IsLinux Pokazuje izvodi li se sesija na operativnom sustavu Linux.
$IsMacOS Pokazuje izvodi li se sesija na MacOS operativnom sustavu.
$IsWindows Identificira izvodi li se sesija na Windows operativnom sustavu.
$LASTEXITCODE Pohranjuje izlazni kod posljednjeg izvornog programa ili PowerShell skripte.
$Utakmice Sadrži podudarne nizove iz operatora '-match' i '-notmatch'.
$NestedPromptLevel Prati trenutnu razinu upita u ugniježđenim naredbama ili scenarijima otklanjanja pogrešaka.
$nula Predstavlja nultu ili praznu vrijednost.
$PID Sadrži identifikator procesa (PID) PowerShell sesije.
$PROFIL Sadrži punu putanju profila PowerShell za trenutnog korisnika i host aplikaciju.
$PSBoundParameters Sadrži rječnik parametara proslijeđenih skripti ili funkciji i njihovih vrijednosti.
$PSCommandPath Sadrži puni put i naziv datoteke skripte koja se izvršava.
$PSKultura Odražava kulturu trenutnog prostora za izvođenje PowerShell-a.
$PSizdanje Sadrži informacije o izdanju PowerShell-a.
$PSHOME Sadrži punu stazu instalacijskog direktorija PowerShell.
$PSItem Isto kao $_, predstavlja trenutni objekt u cjevovodu.
$PSScriptRoot Sadrži punu putanju nadređenog direktorija skripte koja se izvršava.
$PSSenderInfo Sadrži podatke o korisniku koji je pokrenuo PSSession.
$PSUICulture Odražava kulturu korisničkog sučelja (UI) konfiguriranu u operativnom sustavu.
$OSO Predstavlja trenutni radni direktorij PowerShell sesije.
$Pošiljatelj Sadrži objekt koji je generirao događaj.
$ShellId Sadrži identifikator trenutne ljuske.
$StackTrace Pohranjuje praćenje stoga za najnoviju pogrešku.
$prekidač Sadrži enumerator izjave 'Switch'.
$ovo Odnosi se na instancu klase u blokovima skripte koji proširuju klase.
$istina Predstavlja Booleovu vrijednost 'True'.

Sve 'automatske varijable' u PowerShell-u mogu se pronaći pokretanjem donje naredbe:

Get-varijabla

Zaključak

Automatske varijable ” čine okosnicu PowerShell skriptiranja, omogućujući razvojnim programerima da dobiju informacije o sustavu, argumentima naredbenog retka, kontekstu izvršavanja skripte i više. Korištenjem automatskih varijabli kao što su “$PSVersionTable”, “$Args”, “$MyInvocation”, “$Error” i drugih, programeri PowerShell skripti mogu stvoriti pojednostavljene prakse administracije sustava.