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.