PowerShell “ Automātiskie mainīgie ” ir būtiski sistēmas pārvaldībai, automatizācijai un skriptu darbībām. Šie mainīgie ir iebūvēti PowerShell izpildlaikā un kalpo kā vietturi, lai saglabātu un atsauktos uz konkrētu informāciju skripta vai komandas izpildes laikā. Šo automātisko mainīgo efektīva izpratne un izmantošana var ievērojami uzlabot PowerShell skriptu efektivitāti un funkcionalitāti.
Šī raksta mērķis ir izpētīt jēdzienu “Automātiskie mainīgie” programmā PowerShell, to nozīmi un to, kā tos izmantot dažādos scenārijos.
Kas ir automātiskie mainīgie programmā PowerShell?
Lai sāktu, iedziļināsimies definīcijā ' Automātiskie mainīgie ”. Šie mainīgie ir iepriekš definēti, un tos automātiski izveido PowerShell skripta izpildes laikā. Tie kalpo dažādiem mērķiem, tostarp sniedzot informāciju par sistēmu, komandrindas argumentus, ar skriptu saistītu informāciju un daudz ko citu.
PowerShell piedāvā vairākus “automātiskos mainīgos”, un katrs no tiem kalpo noteiktam mērķim skripta izpildē. Šie mainīgie ir šādi:
1. $PSVersionTable
Viens no galvenajiem automātiskiem PowerShell mainīgajiem ir ' $PSVersionTable ”. Šis mainīgais ļauj skriptu izstrādātājiem noskaidrot izmantoto PowerShell versiju, kas var būt ļoti svarīgi, apsverot noteiktu līdzekļu un funkcionalitātes saderību un pieejamību.
Ar šo mainīgo ir saistītas šādas īpašības:
PSVversija: Atgriež PowerShell versijas numuru.
PSEizdevums: PowerShell 4 un vecākām versijām, kā arī PowerShell 5.1 pilnfunkciju Windows versijās šim rekvizītam ir vērtība “Desktop”. Šim raksturlielumam ir Core vērtība PowerShell 6 un jaunākām versijām, kā arī Windows PowerShell 5.1 zema apjoma izdevumiem, piemēram, Windows Nano Server vai Windows IoT.
GitCommitId: Ienes avota failu GitHub apstiprināšanas ID.
TU: Reģistrē informāciju par datorsistēmu, ko izmanto PowerShell.
Platforma: Atgriež operētājsistēmas atbalsta platformu. Unix ir vērtība operētājsistēmās Linux un macOS. Pārbaudiet $IsMacOs un $IsLinux.
PSCompatibleVersions: Tiek atgrieztas PowerShell versijas, kas ir saderīgas ar pašreizējo versiju.
PSRemotingProtocolVersion: Atgriež PowerShell attālās pārvaldības protokola versijas numuru.
Serializācijas versija: Atgriež serializācijas metodes versiju.
WSManStackVersion: Atgriež WS-Management steka versijas numuru.
$ PSVversionTable
2. $Args
Vēl viens būtisks automātiskais mainīgais programmā PowerShell ir “ $Args ”, kas satur komandrindas argumentu masīvu, kas tiek nodots skriptam vai funkcijai. Šis mainīgais dod iespēju izstrādātājiem dinamiski apstrādāt un manipulēt ar sniegtajiem argumentiem savos skriptos.
Definējot funkciju, varat izmantot atslēgvārdu “param”, lai deklarētu parametrus, vai arī iekavās aiz funkcijas nosaukuma varat pievienot ar komatu atdalītu parametru sarakstu. Notikuma darbības mainīgais “$Args” saglabā objektus, kas kalpo kā vietturi apstrādājamā notikuma notikumu parametriem:
katram ( $arg iekšā $Args ) {Rakstīšanas saimniekdators $arg
}
3. $MyInvocation
' $MyInvocation ” mainīgais sniedz svarīgus fona datus par skriptu vai procedūru, kas pašlaik darbojas. Tas piedāvā tādus rekvizītus kā skripta nosaukums, skripta rindas numurs un tas, vai skripts tiek palaists interaktīvi vai neinteraktīvi. Šie rekvizīti palīdz skriptu izstrādātājiem ieviest sazarošanas loģiku, definēt kļūdu apstrādes mehānismus vai ģenerēt jēgpilnu reģistrēšanu un atskaites:
$ MyInvocation
4. $Error
Mazāk zināms automātiskais mainīgais ' $Kļūda ”, efektīvi tver visus kļūdu ziņojumus vai izņēmumus, kas rodas skripta izpildes laikā. “$Error” var piekļūt, lai izgūtu konkrētu kļūdu informāciju, piemēram, izņēmuma ziņojumus, steka izsekošanas vai kļūdu kodus, nodrošinot detalizētu analīzi un atkļūdošanu.
Jaunāko kļūdu attēlo pirmais kļūdas objekts masīvā “ $Error[0] “. Varat izmantot ErrorAction kopējo opciju ar vērtību “Ignore”, lai novērstu kļūdu pievienošanu masīvam “$Error”.
Pieņemsim, ka mēs ierakstījām precīzu komandu:
ip [ onfig
Tagad, ja ievadām cmdlet “$ Error”:
$ Kļūda
5. $PSCmdlet
Strādājot ar PowerShell moduļiem, automātiskais mainīgais ' $PSCmdlet ” stājas spēkā. Šis mainīgais nodrošina piekļuvi pašreizējam izsauktās cmdlet vai funkcijas gadījumam, atvieglojot tiešu mijiedarbību ar tā īpašībām un metodēm.
Izmantojot “$PSCmdlet”, uzlaboti skriptu izstrādātāji var precīzi noregulēt un uzlabot moduļu darbību, paplašinot vai modificējot iebūvētās funkcijas. Varat izmantot objekta atribūtus un metodes savā cmdlet vai funkcijas kodā, reaģējot uz lietošanas kritērijiem:
funkciju typeof-psCmdlet {[ cmdlet Binding ( ) ] param ( )
atbalss 'tips'. $psCmdlet ir $($psCmdlet.GetType() .Pilnais vārds)'
}
typeof-psCmdlet
Papildus iepriekšminētajiem mainīgajiem, PowerShell ietver automātiskos mainīgos, piemēram, $HOME, $PROFILE, $PWD un daudz ko citu, kas kalpo dažādiem mērķiem, piemēram, piekļuvei ievadei, izsekošanas kļūdām, vides informācijas izgūšanai, parametru pārvaldīšanai un daudz ko citu. Šie mainīgie ir norādīti tālāk:
Automātiskie mainīgie | Apraksts |
$$ | Satur pēdējo pilnvaru iepriekšējā rindā, ko saņēma PowerShell sesija. |
$? | Saglabā pēdējās komandas izpildes statusu. |
$^ | Satur sesijā saņemtās pēdējās rindas pirmo marķieri. |
$_ | Apzīmē pašreizējo objektu cauruļvadā. |
$ConsoleFileName | Satur sesijā nesen izmantotā konsoles faila (.psc1) ceļu. |
$EnabledExperimentalFeatures | Satur iespējoto eksperimentālo funkciju sarakstu. |
$Event | Satur objektu “PSEventArgs”, kas attēlo apstrādājamo notikumu. |
$EventArgs | Ietver apstrādājamā notikuma pirmo notikuma argumentu. |
$EventSubscriber | Apzīmē apstrādājamā notikuma notikuma abonentu. |
$ExecutionContext | Atspoguļo PowerShell resursdatora izpildes kontekstu. |
$false | Apzīmē Būla vērtību “False”. |
$foreach | Ietver cilpas “katram” skaitītāju. |
$HOME | Ietver pilnu lietotāja mājas direktorija ceļu. |
$Host | Apzīmē pašreizējo PowerShell resursdatora lietojumprogrammu. |
$ievade | Kalpo kā skaitītājs visai funkcijai vai skriptam nodotajai ievadei. |
$IsCoreCLR | Norāda, vai sesija darbojas .NET Core Runtime (CoreCLR). |
$IsLinux | Norāda, vai sesija darbojas operētājsistēmā Linux. |
$IsMacOS | Norāda, vai sesija darbojas MacOS operētājsistēmā. |
$IsWindows | Identificē, vai sesija darbojas operētājsistēmā Windows. |
LASTEXITCODE $ | Saglabā pēdējās vietējās programmas vai PowerShell skripta izejas kodu. |
$ Matches | Satur saskaņotas virknes no operatoriem “-match” un “-notmatch”. |
$NestedPromptLevel | Izseko pašreizējo uzvednes līmeni ligzdotajās komandās vai atkļūdošanas scenārijos. |
$null | Apzīmē nulles vai tukšu vērtību. |
$PID | Ietver PowerShell sesijas procesa identifikatoru (PID). |
$PROFILS | Ietver pilnu PowerShell profila ceļu pašreizējam lietotājam un resursdatora lietojumprogrammai. |
$PSBoundParameters | Saglabā skriptam vai funkcijai nodoto parametru un to vērtību vārdnīcu. |
$PSCommandPath | Satur pilnu izpildāmā skripta ceļu un faila nosaukumu. |
$PSKultūra | Atspoguļo pašreizējās PowerShell darbības vietas kultūru. |
$PSEizdevums | Ietver informāciju par PowerShell izdevumu. |
$PSHOME | Ietver pilnu PowerShell instalācijas direktorija ceļu. |
$PSItem | Tāpat kā $_, apzīmē pašreizējo objektu konveijerā. |
$PSScriptRoot | Ietver pilnu izpildes skripta vecākdirektorija ceļu. |
$PSSenderInfo | Satur informāciju par lietotāju, kurš uzsāka PSSsessiju. |
$PSUICulture | Atspoguļo operētājsistēmā konfigurēto lietotāja interfeisa (UI) kultūru. |
$PWD | Apzīmē pašreizējo PowerShell sesijas darba direktoriju. |
$Sūtītājs | Ietver objektu, kas ģenerēja notikumu. |
$ShellId | Satur pašreizējās čaulas identifikatoru. |
$StackTrace | Saglabā jaunākās kļūdas steka izsekošanu. |
$slēdzis | Satur priekšraksta “Switch” skaitītāju. |
$this | Attiecas uz klases gadījumu skriptu blokos, kas paplašina klases. |
$true | Apzīmē Būla vērtību “True”. |
Visus PowerShell “automātiskos mainīgos” var atrast, izpildot tālāk norādīto komandu:
Get-Variable
Secinājums
' Automātiskie mainīgie ” veido PowerShell skriptēšanas mugurkaulu, ļaujot izstrādātājiem iegūt informāciju par sistēmu, komandrindas argumentiem, skripta izpildes kontekstu un daudz ko citu. Izmantojot automātiskos mainīgos, piemēram, “$PSVersionTable”, “$Args”, “$MyInvocation”, “$Error” un citus, PowerShell skriptu izstrādātāji var izveidot racionalizētas sistēmas administrēšanas metodes.