Hva er automatiske variabler i PowerShell

Hva Er Automatiske Variabler I Powershell



PowerShells ' Automatiske variabler ” er avgjørende for systemadministrasjon, automatisering og skripting. Disse variablene er innebygd av PowerShell-kjøringen og fungerer som plassholdere for å lagre og referere til spesifikk informasjon under kjøringen av et skript eller en kommando. Å forstå og bruke disse automatiske variablene effektivt kan forbedre effektiviteten og funksjonaliteten til PowerShell-skript betraktelig.

Denne artikkelen tar sikte på å utforske konseptet 'Automatiske variabler' i PowerShell, deres betydning og hvordan de kan utnyttes i ulike scenarier.







Hva er automatiske variabler i PowerShell?

For å begynne, la oss fordype oss i definisjonen av ' Automatiske variabler '. Disse variablene er forhåndsdefinert og opprettes automatisk av PowerShell under kjøring av skript. Disse tjener forskjellige formål, inkludert å gi informasjon om systemet, kommandolinjeargumenter, skriptrelaterte detaljer og mye mer.



PowerShell tilbyr flere 'automatiske variabler', og hver av dem tjener et særskilt formål i skriptutførelse. Disse variablene er som følger:



1. $PSVersionTable

En av de grunnleggende automatiske variablene i PowerShell er ' $PSVersionTable '. Denne variabelen lar skriptutviklere finne ut hvilken versjon av PowerShell som brukes, noe som kan være avgjørende når man vurderer kompatibiliteten og tilgjengeligheten til visse funksjoner og funksjoner.





Følgende egenskaper er knyttet til denne variabelen:

PS-versjon: Returnerer PowerShell-versjonsnummeret.



PSE-utgave: For PowerShell 4 og tidligere, samt PowerShell 5.1 på Windows-versjoner med alle funksjoner, har denne egenskapen verdien «Desktop». Denne egenskapen har verdien av Core for PowerShell 6 og nyere, samt Windows PowerShell 5.1 for utgaver med lite fotavtrykk som Windows Nano Server eller Windows IoT.

GitCommitId: Henter kildefilenes GitHub commit ID.

DU: Logger informasjon om datasystemet som PowerShell bruker.

Plattform: Returnerer operativsystemets støtteplattform. Unix har verdi på Linux og macOS. Sjekk ut $IsMacOs og $IsLinux.

PS-kompatible versjoner: PowerShell-versjoner som er kompatible med gjeldende versjon, returneres.

PSRemotingProtocolVersion: Returnerer versjonsnummeret for PowerShell ekstern administrasjonsprotokoll.

Serialiseringsversjon: Returnerer serialiseringsmetodens versjon.

WSManStackVersion: Returnerer WS-Management-stakkens versjonsnummer.

$ PSVersjonstabell

2. $Args

En annen viktig automatisk variabel i PowerShell er ' $Args ”, som inneholder en rekke kommandolinjeargumenter som sendes til et skript eller en funksjon. Denne variabelen gir utviklere mulighet til å behandle og manipulere de oppgitte argumentene dynamisk i skriptene deres.

Når du definerer en funksjon, kan du enten bruke nøkkelordet 'param' for å deklarere parameterne, eller du kan legge til en kommadelt liste over parametere i parentes etter funksjonsnavnet. En hendelseshandlings '$Args'-variabel lagrer objekter som fungerer som plassholdere for hendelsesparametrene til hendelsen som håndteres:

for hver ( $arg i $Args ) {
Skrive-vert $arg
}

3. $MyInvocation

« $MyInvocation variabel gir viktige bakgrunnsdata om skriptet eller prosedyren som kjører for øyeblikket. Det tilbyr egenskaper som skriptnavn, skriptlinjenummer og om skriptet kjøres interaktivt eller ikke-interaktivt. Disse egenskapene hjelper skriptutviklere med å implementere forgreningslogikk, definere feilhåndteringsmekanismer eller generere meningsfull logging og rapportering:

$ MyInvocation

4. $Feil

En mindre kjent automatisk variabel ' $Error ”, fanger effektivt opp eventuelle feilmeldinger eller unntak som oppstår under kjøring av skript. '$Error' kan nås for å hente spesifikke feildetaljer som unntaksmeldinger, stackspor eller feilkoder, noe som muliggjør detaljert analyse og feilsøking.

Den siste feilen er representert av det første feilobjektet i matrisen ' $Error[0] '. Du kan bruke det vanlige alternativet ErrorAction med verdien 'Ignorer' for å forhindre at feilene blir lagt til '$Error'-matrisen.

Anta at vi skrev inn en nøyaktig kommando:

ip [ påfig

Nå, hvis vi skriver inn '$Error' cmdlet:

$ Feil

5. $PSCmdlet

Når du arbeider med PowerShell-moduler, vil den automatiske variabelen ' $PSCmdlet ' trer i kraft. Denne variabelen gir tilgang til gjeldende forekomst av cmdleten eller funksjonen som påkalles, og letter direkte interaksjon med dens egenskaper og metoder.

Ved å bruke «$PSCmdlet» kan avanserte skriptutviklere finjustere og forbedre modulenes oppførsel ved å utvide eller modifisere de innebygde funksjonene. Du kan bruke objektets attributter og metoder i cmdlet- eller funksjonskoden som svar på brukskriteriene:

funksjon type-psCmdlet {
[ cmdletBinding ( ) ] param ( )
ekko 'type ` $psCmdlet er $($psCmdlet.GetType() .Fullt navn)'
}

type-psCmdlet

I tillegg til de nevnte variablene, omfatter PowerShell automatiske variabler som $HOME, $PROFILE, $PWD og mange flere, som tjener forskjellige formål, for eksempel tilgang til input, sporingsfeil, henting av miljøinformasjon, administrering av parametere og mye mer. Disse variablene er listet opp nedenfor:

Automatiske variabler Beskrivelse
$$ Inneholder det siste tokenet i forrige linje mottatt av PowerShell-økten.
$? Lagrer utførelsesstatusen til den siste kommandoen.
$^ Inneholder det første tokenet fra den siste linjen mottatt av økten.
$_ Representerer gjeldende objekt i rørledningen.
$ConsoleFileName Inneholder banen til konsollfilen (.psc1) som sist ble brukt i økten.
$EnabledExperimentalFeatures Inneholder en liste over aktiverte eksperimentelle funksjoner.
$Event Inneholder et 'PSEventArgs'-objekt som representerer hendelsen som behandles.
$EventArgs Inneholder det første hendelsesargumentet for hendelsen som behandles.
$EventSubscriber Representerer hendelsesabonnenten til hendelsen som behandles.
$ExecutionContext Representerer utførelseskonteksten til PowerShell-verten.
$false Representerer den boolske verdien 'False'.
$foreach Inneholder telleren for en 'for-hver'-løkke.
$HJEM Inneholder hele banen til brukerens hjemmekatalog.
$Vert Representerer gjeldende vertsapplikasjon for PowerShell.
$inngang Fungerer som en teller for alle input som sendes til en funksjon eller et skript.
$IsCoreCLR Indikerer om økten kjører på .NET Core Runtime (CoreCLR).
$IsLinux Indikerer om økten kjører på et Linux-operativsystem.
$IsMacOS Indikerer om økten kjører på et MacOS-operativsystem.
$IsWindows Identifiserer om økten kjører på et Windows-operativsystem.
$LASTEXITCODE Lagrer utgangskoden til det siste opprinnelige programmet eller PowerShell-skriptet.
$kamper Inneholder samsvarende strenger fra operatorene '-match' og '-notmatch'.
$NestedPromptLevel Sporer gjeldende ledetekstnivå i nestede kommandoer eller feilsøkingsscenarier.
$null Representerer en null eller tom verdi.
$PID Inneholder prosessidentifikatoren (PID) for PowerShell-sesjonen.
$PROFIL Inneholder hele banen til PowerShell-profilen for gjeldende bruker og vertsapplikasjon.
$PSBoundParameters Inneholder en ordbok med parametere som sendes til et skript eller en funksjon og deres verdier.
$PSCommandPath Inneholder hele banen og filnavnet til skriptet som kjøres.
$PSKultur Gjenspeiler kulturen til det nåværende PowerShell-kjørerommet.
$PSEdition Inneholder informasjon om PowerShell-utgaven.
$PSHOME Inneholder hele banen til PowerShell-installasjonskatalogen.
$PSItem Samme som $_, representerer gjeldende objekt i rørledningen.
$PSScriptRoot Inneholder hele banen til det kjørende skriptets overordnede katalog.
$PSSenderInfo Inneholder informasjon om brukeren som startet PSSessionen.
$PSUICulture Gjenspeiler brukergrensesnittkulturen (UI) som er konfigurert i operativsystemet.
$PWD Representerer gjeldende arbeidskatalog for PowerShell-sesjonen.
$Sender Inneholder objektet som genererte en hendelse.
$ShellId Inneholder identifikatoren til gjeldende skall.
$StackTrace Lagrer stabelsporingen for den siste feilen.
$bryter Inneholder telleren for 'Switch'-setningen.
$dette Refererer til forekomsten av en klasse i skriptblokker som utvider klasser.
$true Representerer den boolske verdien 'True'.

Alle de 'automatiske variablene' i PowerShell kan bli funnet ved å kjøre kommandoen nedenfor:

Get-Variable

Konklusjon

' Automatiske variabler ” danner ryggraden i PowerShell-skripting, og lar utviklere få informasjon om systemet, kommandolinjeargumenter, skriptutførelseskontekst og mer. Ved å utnytte automatiske variabler som '$PSVersionTable', '$Args', '$MyInvocation', '$Error' og andre, kan PowerShell-skriptutviklere lage strømlinjeformet systemadministrasjonspraksis.