Čo sú automatické premenné v PowerShell

Co Su Automaticke Premenne V Powershell



PowerShell Automatické premenné sú nevyhnutné pre správu systému, automatizáciu a skriptovanie. Tieto premenné sú zabudované v prostredí PowerShell a slúžia ako zástupné symboly na ukladanie a odkazovanie na konkrétne informácie počas vykonávania skriptu alebo príkazu. Pochopenie a efektívne využitie týchto automatických premenných môže výrazne zvýšiť efektivitu a funkčnosť skriptov PowerShell.

Cieľom tohto článku je preskúmať koncept „automatických premenných“ v PowerShell, ich význam a ako ich možno využiť v rôznych scenároch.







Čo sú automatické premenné v PowerShell?

Na začiatok sa ponorme do definície „ Automatické premenné “. Tieto premenné sú preddefinované a automaticky ich vytvára PowerShell počas vykonávania skriptu. Tieto slúžia na rôzne účely, vrátane poskytovania informácií o systéme, argumentov príkazového riadka, podrobností súvisiacich so skriptom a oveľa viac.



PowerShell ponúka niekoľko „automatických premenných“ a každá z nich slúži na odlišný účel pri vykonávaní skriptu. Tieto premenné sú nasledovné:



1. $PSVersionTable

Jednou zo základných automatických premenných v PowerShell je „ $PSVersionTable “. Táto premenná umožňuje vývojárom skriptov zistiť verziu prostredia PowerShell, ktorá sa používa, čo môže byť rozhodujúce pri zvažovaní kompatibility a dostupnosti určitých funkcií a funkcií.





S touto premennou sú spojené nasledujúce vlastnosti:

PSV verzia: Vráti číslo verzie prostredia PowerShell.



PS Edition: Pre PowerShell 4 a staršie verzie, ako aj PowerShell 5.1 vo verziách Windows s plnohodnotnými funkciami, má táto vlastnosť hodnotu „Desktop“. Táto charakteristika má hodnotu Core pre PowerShell 6 a novší, ako aj Windows PowerShell 5.1 pre edície s nízkymi nákladmi, ako je Windows Nano Server alebo Windows IoT.

GitCommitId: Načítava ID odovzdania GitHub zdrojových súborov.

VY: Zaznamenáva informácie o počítačovom systéme, ktorý PowerShell používa.

Plošina: Vráti podpornú platformu operačného systému. Unix má hodnotu pre Linux a MacOS. Pozrite si $IsMacOs a $IsLinux.

PSCompatibleVersions: Vrátia sa verzie prostredia PowerShell, ktoré sú kompatibilné s aktuálnou verziou.

PSRemotingProtocolVersion: Vráti číslo verzie pre protokol vzdialenej správy PowerShell.

Serializačná verzia: Vráti verziu metódy serializácie.

WSManStackVersion: Vráti číslo verzie zásobníka WS-Management.

$ Tabuľka PSV

2. $Args

Ďalšou základnou automatickou premennou v PowerShell je „ $Args “, ktorý obsahuje pole argumentov príkazového riadka odovzdaných skriptu alebo funkcii. Táto premenná umožňuje vývojárom dynamicky spracovávať a manipulovať s poskytnutými argumentmi v rámci ich skriptov.

Pri definovaní funkcie môžete buď použiť kľúčové slovo „param“ na deklarovanie parametrov, alebo môžete pridať zoznam parametrov oddelených čiarkami v zátvorkách za názvom funkcie. Premenná akcie udalosti „$Args“ ukladá objekty, ktoré slúžia ako zástupné symboly pre parametre udalosti spracovávanej udalosti:

pre každý ( $arg v $Args ) {
Write-Host $arg
}

3. $MyInvocation

' $MyInvocation ” premenná poskytuje dôležité základné údaje o skripte alebo procedúre, ktorá je momentálne spustená. Ponúka vlastnosti, ako je názov skriptu, číslo riadku skriptu a či sa skript spúšťa interaktívne alebo neinteraktívne. Tieto vlastnosti pomáhajú vývojárom skriptov implementovať logiku vetvenia, definovať mechanizmy spracovania chýb alebo generovať zmysluplné protokolovanie a hlásenie:

$ MyInvocation

4. $Error

Menej známa automatická premenná „ $Error “, efektívne zachytáva všetky chybové hlásenia alebo výnimky, ktoré sa vyskytnú počas vykonávania skriptu. „$Error“ je prístupný na získanie konkrétnych podrobností o chybách, ako sú správy o výnimkách, sledovanie zásobníka alebo chybové kódy, čo umožňuje podrobnú analýzu a ladenie.

Najnovšia chyba je reprezentovaná prvým chybovým objektom v poli “ $Error[0] “. Môžete použiť spoločnú možnosť ErrorAction s hodnotou „Ignore“ na zastavenie pridávania chýb do poľa „$Error“.

Predpokladajme, že sme napísali presný príkaz:

IP [ onfig

Ak teraz zadáme cmdlet „$Error“:

$ Chyba

5. $PSCmdlet

Pri práci s modulmi PowerShell sa automatická premenná „ $PSCmdlet “ nadobudne účinnosť. Táto premenná poskytuje prístup k aktuálnej inštancii rutiny cmdlet alebo vyvolanej funkcie, čím uľahčuje priamu interakciu s jej vlastnosťami a metódami.

Pomocou „$PSCmdlet“ môžu pokročilí vývojári skriptov doladiť a zlepšiť správanie modulov rozšírením alebo úpravou vstavaných funkcií. Atribúty a metódy objektu môžete použiť vo svojom cmdlet alebo kóde funkcie ako odpoveď na kritériá použitia:

funkciu typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
ozvena 'typ ' $psCmdlet je $($psCmdlet.GetType() .Celé meno)'
}

typeof-psCmdlet

Okrem vyššie uvedených premenných PowerShell zahŕňa automatické premenné ako $HOME, $PROFILE, $PWD a mnohé ďalšie, ktoré slúžia na rôzne účely, ako je prístup k vstupu, sledovanie chýb, získavanie informácií o prostredí, správa parametrov a mnoho ďalších. Tieto premenné sú uvedené nižšie:

Automatické premenné Popis
$$ Obsahuje posledný token v predchádzajúcom riadku prijatý reláciou PowerShell.
$? Ukladá stav vykonania posledného príkazu.
$^ Obsahuje prvý token posledného riadku prijatého reláciou.
$_ Predstavuje aktuálny objekt v potrubí.
$ConsoleFileName Obsahuje cestu k súboru konzoly (.psc1), ktorý bol naposledy použitý v relácii.
$EnabledExperimentalFeatures Obsahuje zoznam povolených experimentálnych funkcií.
$Event Obsahuje objekt „PSEventArgs“ predstavujúci spracovávanú udalosť.
$EventArgs Obsahuje prvý argument udalosti spracovávanej udalosti.
$EventSubscriber Predstavuje odberateľa udalosti spracovávanej udalosti.
$ExecutionContext Predstavuje kontext vykonávania hostiteľa PowerShell.
$false Predstavuje boolovskú hodnotu „False“.
$foreach Obsahuje enumerátor cyklu „pre každého“.
$HOME Obsahuje úplnú cestu domovského adresára používateľa.
$Hostiteľ Predstavuje aktuálnu hostiteľskú aplikáciu pre PowerShell.
$vstup Slúži ako enumerátor pre všetok vstup odovzdaný funkcii alebo skriptu.
$IsCoreCLR Označuje, či relácia beží na .NET Core Runtime (CoreCLR).
$IsLinux Označuje, či je relácia spustená v operačnom systéme Linux.
$IsMacOS Označuje, či je relácia spustená v operačnom systéme MacOS.
$IsWindows Identifikuje, či je relácia spustená v operačnom systéme Windows.
$LASTEXITCODE Ukladá ukončovací kód posledného natívneho programu alebo skriptu PowerShell.
$Zápasy Obsahuje zhodné reťazce z operátorov „-match“ a „-notmatch“.
$ NestedPromptLevel Sleduje aktuálnu úroveň výzvy vo vnorených príkazoch alebo scenároch ladenia.
$null Predstavuje nulovú alebo prázdnu hodnotu.
$ PID Obsahuje identifikátor procesu (PID) relácie PowerShell.
$PROFIL Obsahuje úplnú cestu profilu PowerShell pre aktuálneho používateľa a hostiteľskú aplikáciu.
$PSBoundParameters Obsahuje slovník parametrov odovzdaných skriptu alebo funkcii a ich hodnoty.
$PSCommandPath Obsahuje úplnú cestu a názov súboru spúšťaného skriptu.
$PSCulture Odráža kultúru aktuálneho prevádzkového priestoru PowerShell.
$PS Edition Obsahuje informácie o vydaní PowerShell.
$PSHOME Obsahuje úplnú cestu k inštalačnému adresáru PowerShell.
$PSItem Rovnako ako $_, predstavuje aktuálny objekt v potrubí.
$PSScriptRoot Obsahuje úplnú cestu k nadradenému adresáru vykonávaného skriptu.
$PSSenderInfo Obsahuje informácie o používateľovi, ktorý spustil PSSession.
$PSUICkultúra Odráža kultúru používateľského rozhrania (UI) nakonfigurovanú v operačnom systéme.
$PWD Predstavuje aktuálny pracovný adresár relácie PowerShell.
$Sender Obsahuje objekt, ktorý vygeneroval udalosť.
$ShellId Obsahuje identifikátor aktuálneho shellu.
$StackTrace Uloží stopu zásobníka pre najnovšiu chybu.
$ prepínač Obsahuje enumerátor príkazu „Switch“.
$this Odkazuje na inštanciu triedy v blokoch skriptov, ktoré rozširujú triedy.
$pravda Predstavuje boolovskú hodnotu „True“.

Všetky „automatické premenné“ v PowerShell nájdete spustením nižšie uvedeného príkazu:

Get-Variable

Záver

Automatické premenné ” tvoria chrbticu skriptovania PowerShell, čo umožňuje vývojárom získať informácie o systéme, argumenty príkazového riadka, kontext vykonávania skriptu a ďalšie. Využitím automatických premenných, ako sú „$PSVersionTable“, „$Args“, „$MyInvocation“, „$Error“ a ďalšie, môžu vývojári skriptov PowerShell vytvárať zjednodušené postupy správy systému.