Mitä ovat automaattiset muuttujat PowerShellissä

Mita Ovat Automaattiset Muuttujat Powershellissa



PowerShellin ' Automaattiset muuttujat ” ovat välttämättömiä järjestelmänhallinnan, automaation ja komentosarjatoimintojen kannalta. Nämä muuttujat ovat PowerShell-ajonaikaisen sisäänrakennettuja, ja ne toimivat paikkamerkkinä tiettyjen tietojen tallentamiseen ja viittaamiseen komentosarjan tai komennon suorittamisen aikana. Näiden automaattisten muuttujien ymmärtäminen ja tehokas hyödyntäminen voi parantaa huomattavasti PowerShell-komentosarjojen tehokkuutta ja toimivuutta.

Tämän artikkelin tarkoituksena on tutkia PowerShellin 'automaattisten muuttujien' käsitettä, niiden merkitystä ja sitä, miten niitä voidaan hyödyntää eri skenaarioissa.







Mitä ovat automaattiset muuttujat PowerShellissä?

Aluksi syvennytään määritelmään ' Automaattiset muuttujat ”. Nämä muuttujat ovat ennalta määritettyjä, ja PowerShell luo ne automaattisesti komentosarjan suorittamisen aikana. Niitä käytetään eri tarkoituksiin, mukaan lukien tiedot järjestelmästä, komentoriviargumentit, komentosarjaan liittyvät tiedot ja paljon muuta.



PowerShell tarjoaa useita 'automaattisia muuttujia', ja jokainen niistä palvelee erillistä tarkoitusta komentosarjan suorittamisessa. Nämä muuttujat ovat seuraavat:



1. $PSVersionTable

Yksi PowerShellin tärkeimmistä automaattisista muuttujista on ' $PSVersionTable ”. Tämän muuttujan avulla komentosarjan kehittäjät voivat varmistaa käytetyn PowerShell-version, mikä voi olla ratkaisevaa, kun tarkastellaan tiettyjen ominaisuuksien ja toimintojen yhteensopivuutta ja saatavuutta.





Seuraavat ominaisuudet liittyvät tähän muuttujaan:

PSV-versio: Palauttaa PowerShell-versionumeron.



PSE-versio: PowerShell 4:lle ja sitä vanhemmille versioille sekä PowerShell 5.1:lle täydellisissä Windows-versioissa tämän ominaisuuden arvo on 'Desktop'. Tämän ominaisuuden arvo on Core PowerShell 6:lle ja uudemmille, samoin kuin Windows PowerShell 5.1:n arvo pienille versioille, kuten Windows Nano Server tai Windows IoT.

GitCommitId: Hakee lähdetiedostojen GitHub-toimitustunnuksen.

SINÄ: Kirjaa tiedot PowerShellin käyttämästä tietokonejärjestelmästä.

Alusta: Palauttaa käyttöjärjestelmää tukevan alustan. Unixilla on arvoa Linuxissa ja macOS:ssä. Katso $IsMacOs ja $IsLinux.

PSCompatibleVersions: PowerShell-versiot, jotka ovat yhteensopivia nykyisen version kanssa, palautetaan.

PSRemotingProtocolVersion: Palauttaa PowerShell-etähallintaprotokollan versionumeron.

Sarjaversio: Palauttaa serialisointimenetelmän version.

WSManStackVersion: Palauttaa WS-Management-pinon versionumeron.

$ PSVversiotaulukko

2. $Args

Toinen tärkeä automaattinen muuttuja PowerShellissä on ' $Args ”, joka sisältää joukon komentoriviargumentteja, jotka välitetään skriptille tai funktiolle. Tämä muuttuja antaa kehittäjille mahdollisuuden käsitellä ja käsitellä annettuja argumentteja dynaamisesti komentosarjoissaan.

Kun määrität funktiota, voit joko käyttää 'param'-avainsanaa parametrien ilmoittamiseen tai voit lisätä pilkuilla erotetun luettelon parametreista suluissa funktion nimen perään. Tapahtumatoiminnon '$Args' -muuttuja tallentaa objektit, jotka toimivat käsiteltävän tapahtuman tapahtumaparametrien paikkamerkkinä:

jokaiselle ( $arg sisään $Args ) {
Write-Host $arg
}

3. $MyInvocation

' $MyInvocation ”-muuttuja antaa tärkeitä taustatietoja tällä hetkellä käynnissä olevasta komentosarjasta tai proseduurista. Se tarjoaa ominaisuuksia, kuten komentosarjan nimen, komentosarjan rivin numeron ja sen, ajetaanko komentosarjaa interaktiivisesti vai ei-interaktiivisesti. Nämä ominaisuudet auttavat komentosarjan kehittäjiä toteuttamaan haaroituslogiikkaa, määrittelemään virheenkäsittelymekanismeja tai luomaan mielekkäitä kirjauksia ja raportteja:

$ MyInvocation

4. $Error

Vähemmän tunnettu automaattinen muuttuja $Error ”, kaappaa tehokkaasti kaikki virheilmoitukset tai poikkeukset, jotka tapahtuvat komentosarjan suorittamisen aikana. '$Error' -sovelluksella voidaan hakea tiettyjä virhetietoja, kuten poikkeusviestejä, pinojäljitystä tai virhekoodeja, mikä mahdollistaa yksityiskohtaisen analyysin ja virheenkorjauksen.

Uusinta virhettä edustaa taulukon ensimmäinen virheobjekti ' $Error[0] '. Voit käyttää ErrorAction yleistä vaihtoehtoa, jonka arvo on 'Ignore', estääksesi virheiden lisäämisen '$Error' -taulukkoon.

Oletetaan, että kirjoitimme tarkan komennon:

ip [ kuvassa

Jos nyt syötetään '$Error' -cmdlet:

$ Virhe

5. $PSCmdlet

Kun työskentelet PowerShell-moduulien kanssa, automaattinen muuttuja ' $PSCmdlet ' astuu voimaan. Tämä muuttuja tarjoaa pääsyn kutsuttavan cmdlet- tai funktion nykyiseen esiintymään, mikä helpottaa suoraa vuorovaikutusta sen ominaisuuksien ja menetelmien kanssa.

Käyttämällä '$PSCmdlet' -ohjelmaa edistyneet skriptien kehittäjät voivat hienosäätää ja parantaa moduulien toimintaa laajentamalla tai muokkaamalla sisäänrakennettuja toimintoja. Voit käyttää objektin attribuutteja ja menetelmiä cmdlet- tai funktiokoodissasi käyttöehtojen mukaisesti:

toiminto typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
kaiku 'tyyppi ` $psCmdlet On $($psCmdlet.GetType() .Koko nimi)'
}

typeof-psCmdlet

Edellä mainittujen muuttujien lisäksi PowerShell sisältää automaattisia muuttujia, kuten $HOME, $PROFILE, $PWD ja monia muita, jotka palvelevat eri tarkoituksia, kuten syötteiden käyttöä, virheiden seurantaa, ympäristötietojen hakemista, parametrien hallintaa ja paljon muuta. Nämä muuttujat on lueteltu alla:

Automaattiset muuttujat Kuvaus
$$ Säilyttää PowerShell-istunnon vastaanottaman edellisen rivin viimeisen tunnuksen.
$? Tallentaa viimeisen komennon suoritustilan.
$^ Sisältää istunnon vastaanottaman viimeisen rivin ensimmäisen tunnuksen.
$_ Edustaa nykyistä kohdetta liukuhihnassa.
$ConsoleFileName Sisältää istunnossa viimeksi käytetyn konsolitiedoston (.psc1) polun.
$EnabledExperimentalFeatures Sisältää luettelon käyttöönotetuista kokeellisista ominaisuuksista.
$Event Sisältää 'PSEventArgs' -objektin, joka edustaa käsiteltävää tapahtumaa.
$EventArgs Sisältää käsiteltävän tapahtuman ensimmäisen tapahtuma-argumentin.
$EventSubscriber Edustaa käsiteltävän tapahtuman tilaajaa.
$ExecutionContext Edustaa PowerShell-isännän suorituskontekstia.
$false Edustaa Boolen arvoa 'False'.
$foreach Sisältää 'for-Each' -silmukan luetteloijan.
$HOME Sisältää käyttäjän kotihakemiston koko polun.
$Host Edustaa PowerShellin nykyistä isäntäsovellusta.
$syöttö Toimii kaikkien funktioon tai komentosarjaan siirrettyjen syötteiden luetteloijana.
$IsCoreCLR Osoittaa, onko istunto käynnissä .NET Core Runtimessa (CoreCLR).
$IsLinux Osoittaa, onko istunto käynnissä Linux-käyttöjärjestelmässä.
$IsMacOS Osoittaa, onko istunto käynnissä MacOS-käyttöjärjestelmässä.
$IsWindows Tunnistaa, onko istunto käynnissä Windows-käyttöjärjestelmässä.
$LASTEXITCODE Tallentaa viimeisen alkuperäisen ohjelman tai PowerShell-komentosarjan poistumiskoodin.
$ Matches Sisältää vastaavat merkkijonot '-match'- ja '-notmatch'-operaattoreista.
$NestedPromptLevel Seuraa nykyistä kehotteen tasoa sisäkkäisissä komentoissa tai virheenkorjausskenaarioissa.
$null Edustaa nolla- tai tyhjää arvoa.
$PID Sisältää PowerShell-istunnon prosessitunnisteen (PID).
$PROFIILI Sisältää PowerShell-profiilin koko polun nykyiselle käyttäjälle ja isäntäsovellukselle.
$PSBoundParameters Sisältää sanakirjan komentosarjalle tai funktiolle välitetyistä parametreista ja niiden arvoista.
$PSCommandPath Sisältää suoritettavan skriptin koko polun ja tiedostonimen.
$PSCulture Heijastaa nykyisen PowerShell-ajotilan kulttuuria.
$PSEdition Sisältää PowerShell-version tiedot.
$PSHOME Sisältää PowerShell-asennushakemiston koko polun.
$PSItem Sama kuin $_, edustaa prosessissa olevaa objektia.
$PSScriptRoot Sisältää suoritettavan komentosarjan päähakemiston koko polun.
$PSSenderInfo Sisältää tietoja käyttäjästä, joka aloitti PSS-istunnon.
$PSUICulttuuri Heijastaa käyttöjärjestelmässä määritettyä käyttöliittymäkulttuuria.
$ PWD Edustaa PowerShell-istunnon nykyistä työhakemistoa.
$Lähettäjä Sisältää tapahtuman luoneen objektin.
$ShellId Sisältää nykyisen kuoren tunnisteen.
$StackTrace Tallentaa viimeisimmän virheen pinojäljityksen.
$kytkin Sisältää 'Switch'-lauseen luetteloijan.
$tämä Viittaa luokan esiintymään komentosarjalohkoissa, jotka laajentavat luokkia.
$totta Edustaa Boolen arvoa 'True'.

Kaikki PowerShellin 'automaattiset muuttujat' löytyvät suorittamalla alla oleva komento:

Hanki-muuttuja

Johtopäätös

' Automaattiset muuttujat ” muodostavat PowerShell-komentosarjan selkärangan, jolloin kehittäjät voivat saada tietoa järjestelmästä, komentoriviargumenteista, komentosarjan suorituskontekstista ja paljon muuta. Hyödyntämällä automaattisia muuttujia, kuten '$PSVersionTable', '$Args', '$MyInvocation', '$Error' ja muita, PowerShell-skriptien kehittäjät voivat luoda virtaviivaisia ​​järjestelmänhallintakäytäntöjä.