Mis on PowerShelli automaatsed muutujad

Mis On Powershelli Automaatsed Muutujad



PowerShelli ' Automaatsed muutujad ” on süsteemihalduse, automatiseerimise ja skriptimistoimingute jaoks hädavajalikud. Need muutujad on PowerShelli käitusaja sisseehitatud ja toimivad kohahoidjatena konkreetse teabe salvestamiseks ja viitamiseks skripti või käsu täitmise ajal. Nende automaatsete muutujate mõistmine ja tõhus kasutamine võib oluliselt suurendada PowerShelli skriptide tõhusust ja funktsionaalsust.

Selle artikli eesmärk on uurida PowerShelli automaatsete muutujate kontseptsiooni, nende olulisust ja seda, kuidas neid erinevates stsenaariumides kasutada.







Mis on PowerShelli automaatsed muutujad?

Alustuseks süveneme mõiste ' Automaatsed muutujad ”. Need muutujad on eelmääratletud ja PowerShell loob need skripti täitmise ajal automaatselt. Need teenivad erinevaid eesmärke, sealhulgas pakuvad teavet süsteemi kohta, käsurea argumente, skriptiga seotud üksikasju ja palju muud.



PowerShell pakub mitut 'automaatset muutujat' ja igaüks neist teenib skripti täitmisel oma eesmärki. Need muutujad on järgmised:



1. $PSVersionTable

Üks põhilisi automaatseid muutujaid PowerShellis on ' $PSVersionTable ”. See muutuja võimaldab skripti arendajatel kindlaks teha kasutatava PowerShelli versiooni, mis võib olla otsustava tähtsusega teatud funktsioonide ja funktsioonide ühilduvuse ja saadavuse kaalumisel.





Selle muutujaga on seotud järgmised omadused:

PSV-versioon: Tagastab PowerShelli versiooninumbri.



PSEväljaanne: PowerShell 4 ja varasemate versioonide ning PowerShell 5.1 täisfunktsionaalsete Windowsi versioonide puhul on selle atribuudi väärtus „Desktop”. Selle omaduse väärtus on Core PowerShell 6 ja uuemate versioonide jaoks, aga ka Windows PowerShell 5.1 madala kasutusalaga väljaannete jaoks, nagu Windows Nano Server või Windows IoT.

GitCommitId: Toob lähtefailide GitHubi sissekande ID.

SINA: Logib teavet PowerShelli kasutatava arvutisüsteemi kohta.

Platvorm: Tagastab operatsioonisüsteemi tugiplatvormi. Unixil on väärtus Linuxis ja macOS-is. Vaadake $IsMacOs ja $IsLinux.

PSCompatiibleVersions: Tagatakse PowerShelli versioonid, mis ühilduvad praeguse versiooniga.

PSRemotingProtocolVersion: Tagastab PowerShelli kaughaldusprotokolli versiooninumbri.

SerializationVersion: Tagastab serialiseerimismeetodi versiooni.

WSManStackVersion: Tagastab WS-Managementi virna versiooninumbri.

$ PSVversioontabel

2. $Args

Teine oluline automaatne muutuja PowerShellis on ' $Args ”, mis sisaldab skriptile või funktsioonile edastatud käsurea argumentide massiivi. See muutuja annab arendajatele võimaluse esitatud argumente oma skriptides dünaamiliselt töödelda ja manipuleerida.

Funktsiooni määratlemisel võite parameetrite deklareerimiseks kasutada märksõna 'param' või lisada funktsiooni nime järel sulgudesse komadega eraldatud parameetrite loendi. Sündmuse toimingu muutuja '$Args' salvestab objektid, mis toimivad käsitletava sündmuse sündmuse parameetrite kohahoidjatena:

igaühele ( $arg sisse $Args ) {
Write-Host $arg
}

3. $MyInvocation

' $MyInvocation ” muutuja annab olulised taustaandmed hetkel töötava skripti või protseduuri kohta. See pakub selliseid omadusi nagu skripti nimi, skriptirea number ja see, kas skripti käitatakse interaktiivselt või mitteinteraktiivselt. Need atribuudid aitavad skripti arendajatel rakendada hargnemisloogikat, määratleda veakäsitlusmehhanisme või luua sisukat logimist ja aruandlust.

$ Minu Invocation

4. $Error

Vähemtuntud automaatne muutuja ' $Error ”, salvestab tõhusalt kõik veateated või erandid, mis ilmnevad skripti täitmise ajal. „$Error” on juurdepääsetav konkreetsete veateadete (nt eranditeated, virnajäljed või veakoodid) hankimiseks, mis võimaldab üksikasjalikku analüüsi ja silumist.

Viimast viga tähistab massiivi esimene veaobjekt ' $Error[0] “. Vigade lisamise peatamiseks massiivi '$Error' saate kasutada tavalist suvandit ErrorAction väärtusega 'Ignoreeri'.

Oletame, et sisestasime täpse käsu:

ip [ onfig

Kui sisestame nüüd cmdleti '$ Error':

$ Viga

5. $PSCmdlet

PowerShelli moodulitega töötamisel automaatne muutuja ' $PSCmdlet ” jõustub. See muutuja annab juurdepääsu käivitatava cmdleti või funktsiooni praegusele eksemplarile, hõlbustades otsest suhtlemist selle omaduste ja meetoditega.

Kasutades $PSCmdleti, saavad arenenud skriptiarendajad moodulite käitumist peenhäälestada ja täiustada, laiendades või muutes sisseehitatud funktsioone. Saate kasutada oma cmdlet- või funktsioonikoodis objekti atribuute ja meetodeid vastavalt kasutuskriteeriumidele.

funktsiooni psCmdleti tüüp {
[ cmdletBinding ( ) ] param ( )
kaja 'tüüp ` $psCmdlet on $($psCmdlet.GetType() .Täisnimi)'
}

psCmdleti tüüp

Lisaks eelnimetatud muutujatele hõlmab PowerShell automaatseid muutujaid, nagu $HOME, $PROFILE, $PWD ja palju muud, mis teenivad erinevaid eesmärke, nagu sisendile juurdepääs, vigade jälgimine, keskkonnateabe hankimine, parameetrite haldamine ja palju muud. Need muutujad on loetletud allpool:

Automaatsed muutujad Kirjeldus
$$ Hoiab PowerShelli seansi poolt vastu võetud eelmise rea viimast luba.
$? Salvestab viimase käsu täitmise oleku.
$^ Sisaldab seansi poolt vastu võetud viimase rea esimest märki.
$_ Esindab praegust torujuhtme objekti.
$ConsoleFileName Sisaldab seansi ajal viimati kasutatud konsoolifaili (.psc1) teed.
$EnabledExperimentalFeatures Sisaldab lubatud eksperimentaalsete funktsioonide loendit.
$Event Sisaldab töödeldavat sündmust esindavat objekti 'PSEventArgs'.
$EventArgs Sisaldab töödeldava sündmuse esimest sündmuse argumenti.
$EventSubscriber Esindab töödeldava sündmuse sündmuse tellijat.
$ExecutionContext Esindab PowerShelli hosti täitmiskonteksti.
$vale Esindab Boole'i ​​väärtust 'False'.
$foreach Sisaldab 'igaühele' tsükli loendajat.
$HOME Sisaldab kasutaja kodukataloogi täielikku teed.
$Host Esindab praegust PowerShelli hostirakendust.
$sisend Toimib loendurina kogu funktsioonile või skriptile edastatud sisendi jaoks.
$IsCoreCLR Näitab, kas seanss töötab .NET Core Runtime'is (CoreCLR).
$IsLinux Näitab, kas seanss töötab Linuxi operatsioonisüsteemis.
$IsMacOS Näitab, kas seanss töötab MacOS-i operatsioonisüsteemis.
$ IsWindows Tuvastab, kas seanss töötab Windowsi operatsioonisüsteemis.
$LASTEXITCODE Salvestab viimase omaprogrammi või PowerShelli skripti väljumiskoodi.
$ Matches Sisaldab sobitatud stringe operaatoritest '-match' ja '-notmatch'.
$NestedPromptLevel Jälgib pesastatud käskude või silumise stsenaariumide praegust viiba taset.
$null Esindab null- või tühja väärtust.
$PID Sisaldab PowerShelli seansi protsessiidentifikaatorit (PID).
$PROFIIL Sisaldab praeguse kasutaja ja hostirakenduse PowerShelli profiili täielikku teed.
$PSBoundParameters Hoiab skriptile või funktsioonile edastatud parameetrite ja nende väärtuste sõnastikku.
$PSCommandPath Sisaldab käivitatava skripti täielikku teed ja failinime.
$PSCulture Peegeldab praeguse PowerShelli käitamisruumi kultuuri.
$PSEdition Sisaldab PowerShelli väljaande teavet.
$PSHOME Sisaldab PowerShelli installikataloogi täielikku teed.
$PSItem Sama mis $_, tähistab praegust konveieri objekti.
$PSScriptRoot Sisaldab käivitava skripti ülemkataloogi täielikku teed.
$PSSenderInfo Sisaldab teavet PSS-seansi käivitanud kasutaja kohta.
$PSUICulture Peegeldab operatsioonisüsteemis konfigureeritud kasutajaliidese (UI) kultuuri.
$ PWD Esindab PowerShelli seansi praegust töökataloogi.
$Saatja Sisaldab objekti, mis tekitas sündmuse.
$ShellId Sisaldab praeguse kesta identifikaatorit.
$StackTrace Salvestab virnajälje uusima vea jaoks.
$lüliti Sisaldab lause 'Switch' loendajat.
$see Viitab klassi eksemplarile skriptiplokkides, mis klasse laiendavad.
$tõsi Esindab Boole'i ​​väärtust 'True'.

Kõik PowerShelli 'automaatsed muutujad' leiate, käivitades alloleva käsu:

Hangi muutuv

Järeldus

Automaatsed muutujad ” moodustavad PowerShelli skriptimise selgroo, võimaldades arendajatel hankida teavet süsteemi, käsurea argumentide, skripti täitmise konteksti ja muu kohta. Kasutades automaatseid muutujaid, nagu '$PSVersionTable', '$Args', '$MyInvocation', '$Error' ja teised, saavad PowerShelli skriptide arendajad luua sujuvamaid süsteemihaldustavasid.