Co jsou automatické proměnné v PowerShellu

Co Jsou Automaticke Promenne V Powershellu



PowerShell' Automatické proměnné ” jsou nezbytné pro správu systému, automatizaci a skriptování. Tyto proměnné jsou integrovány v běhovém prostředí PowerShellu a slouží jako zástupné symboly k ukládání a odkazování na konkrétní informace během provádění skriptu nebo příkazu. Pochopení a efektivní využití těchto automatických proměnných může výrazně zvýšit efektivitu a funkčnost skriptů PowerShellu.

Tento článek si klade za cíl prozkoumat koncept „automatických proměnných“ v PowerShellu, jejich význam a jak je lze využít v různých scénářích.







Co jsou automatické proměnné v PowerShellu?

Pro začátek se pojďme ponořit do definice „ Automatické proměnné “. Tyto proměnné jsou předdefinované a automaticky je vytváří PowerShell během provádění skriptu. Ty slouží různým účelům, včetně poskytování informací o systému, argumentů příkazového řádku, podrobností souvisejících se skripty a mnoha dalších.



PowerShell nabízí několik „automatických proměnných“ a každá z nich slouží jinému účelu při provádění skriptu. Tyto proměnné jsou následující:



1. $PSVersionTable

Jednou ze základních automatických proměnných v PowerShellu je „ $PSVersionTable “. Tato proměnná umožňuje vývojářům skriptů zjistit používanou verzi PowerShellu, což může být zásadní při zvažování kompatibility a dostupnosti určitých funkcí a funkcí.





S touto proměnnou jsou spojeny následující vlastnosti:

PSV verze: Vrátí číslo verze PowerShellu.



PS Edition: Pro PowerShell 4 a starší, stejně jako PowerShell 5.1 na plnohodnotných verzích Windows, má tato vlastnost hodnotu „Desktop“. Tato vlastnost má hodnotu Core pro PowerShell 6 a novější, stejně jako Windows PowerShell 5.1 pro edice s nízkými nároky, jako je Windows Nano Server nebo Windows IoT.

GitCommitId: Načte ID odevzdání GitHub zdrojových souborů.

VY: Zaznamenává informace o počítačovém systému, který PowerShell používá.

Plošina: Vrátí podpůrnou platformu operačního systému. Unix má hodnotu pro Linux a macOS. Podívejte se na $IsMacOs a $IsLinux.

PSCompatibleVersions: Vrátí se verze PowerShellu, které jsou kompatibilní s aktuální verzí.

PSRemotingProtocolVersion: Vrátí číslo verze pro protokol vzdálené správy PowerShell.

Serializační verze: Vrátí verzi metody serializace.

WSManStackVersion: Vrátí číslo verze zásobníku WS-Management.

$ Tabulka PSVverzí

2. $Args

Další zásadní automatickou proměnnou v PowerShellu je „ $Args “, která obsahuje pole argumentů příkazového řádku předávaných skriptu nebo funkci. Tato proměnná umožňuje vývojářům dynamicky zpracovávat a manipulovat s poskytnutými argumenty v rámci jejich skriptů.

Při definování funkce můžete buď použít klíčové slovo „param“ k deklaraci parametrů, nebo můžete přidat seznam parametrů oddělených čárkami v závorkách za názvem funkce. Proměnná akce události „$Args“ ukládá objekty, které slouží jako zástupné symboly pro parametry události zpracovávané události:

pro každého ( $arg v $Args ) {
Write-Host $arg
}

3. $MyInvocation

' $MyInvocation ” proměnná poskytuje zásadní podkladová data o skriptu nebo proceduře, která právě běží. Nabízí vlastnosti, jako je název skriptu, číslo řádku skriptu a zda je skript spouštěn interaktivně nebo neinteraktivně. Tyto vlastnosti pomáhají vývojářům skriptů implementovat logiku větvení, definovat mechanismy pro řešení chyb nebo generovat smysluplné protokolování a hlášení:

$ MyInvocation

4. $Error

Méně známá automatická proměnná „ $Error “, efektivně zachycuje všechny chybové zprávy nebo výjimky, které se vyskytnou během provádění skriptu. „$Error“ je přístupný pro získání konkrétních podrobností o chybách, jako jsou zprávy o výjimkách, trasování zásobníku nebo chybové kódy, což umožňuje podrobnou analýzu a ladění.

Nejnovější chyba je reprezentována prvním chybovým objektem v poli “ $Error[0] “. Můžete použít společnou možnost ErrorAction s hodnotou „Ignore“ k zastavení přidávání chyb do pole „$Error“.

Předpokládejme, že jsme zadali přesný příkaz:

ip [ onfig

Nyní, když zadáme rutinu „$Error“:

$ Chyba

5. $PSCmdlet

Při práci s moduly PowerShell se automatická proměnná „ $PSCmdlet “ vstoupí v platnost. Tato proměnná poskytuje přístup k aktuální instanci rutiny nebo funkce, která se vyvolává, a usnadňuje přímou interakci s jejími vlastnostmi a metodami.

Pomocí „$PSCmdlet“ mohou pokročilí vývojáři skriptů doladit a zlepšit chování modulů rozšířením nebo úpravou vestavěných funkcí. Atributy a metody objektu můžete použít ve své rutině nebo kódu funkce v reakci na kritéria použití:

funkce typeof-psCmdlet {
[ cmdletBinding ( ) ] param ( )
echo 'typ ' $psCmdlet je $($psCmdlet.GetType() .Celé jméno)'
}

typeof-psCmdlet

Kromě výše uvedených proměnných zahrnuje PowerShell automatické proměnné jako $HOME, $PROFILE, $PWD a mnoho dalších, které slouží k různým účelům, jako je přístup ke vstupu, sledování chyb, získávání informací o prostředí, správa parametrů a mnoho dalšího. Tyto proměnné jsou uvedeny níže:

Automatické proměnné Popis
$$ Obsahuje poslední token v předchozím řádku přijatý relací PowerShellu.
$? Ukládá stav provedení posledního příkazu.
$^ Obsahuje první token posledního řádku přijatého relací.
$_ Představuje aktuální objekt v potrubí.
$ConsoleFileName Obsahuje cestu k souboru konzoly (.psc1), který byl naposledy použit v relaci.
$EnabledExperimentalFeatures Obsahuje seznam povolených experimentálních funkcí.
$Událost Obsahuje objekt „PSEventArgs“ představující zpracovávanou událost.
$EventArgs Obsahuje první argument události zpracovávané události.
$EventSubscriber Představuje účastníka události zpracovávané události.
$ExecutionContext Představuje kontext provádění hostitele PowerShellu.
$false Představuje booleovskou hodnotu „False“.
$foreach Obsahuje enumerátor smyčky „pro každého“.
$HOME Obsahuje úplnou cestu domovského adresáře uživatele.
$Host Představuje aktuální hostitelskou aplikaci pro PowerShell.
$vstup Slouží jako enumerátor pro veškerý vstup předaný funkci nebo skriptu.
$IsCoreCLR Označuje, zda relace běží na .NET Core Runtime (CoreCLR).
$IsLinux Označuje, zda relace běží na operačním systému Linux.
$IsMacOS Označuje, zda relace běží na operačním systému MacOS.
$IsWindows Identifikuje, zda je relace spuštěna v operačním systému Windows.
$LASTEXITCODE Ukládá ukončovací kód posledního nativního programu nebo skriptu PowerShellu.
$Zápasy Obsahuje odpovídající řetězce z operátorů „-match“ a „-notmatch“.
$NestedPromptLevel Sleduje aktuální úroveň výzvy ve vnořených příkazech nebo scénářích ladění.
$null Představuje prázdnou nebo prázdnou hodnotu.
$ PID Obsahuje identifikátor procesu (PID) relace PowerShellu.
$PROFIL Obsahuje úplnou cestu k profilu PowerShell pro aktuálního uživatele a hostitelskou aplikaci.
$PSBoundParameters Obsahuje slovník parametrů předávaných skriptu nebo funkci a jejich hodnoty.
$PSCommandPath Obsahuje úplnou cestu a název spouštěného skriptu.
$PSCulture Odráží kulturu aktuálního běhového prostoru PowerShellu.
$PS Edition Obsahuje informace o vydání PowerShell.
$PSHOME Obsahuje úplnou cestu k instalačnímu adresáři PowerShellu.
$PSItem Stejně jako $_, představuje aktuální objekt v kanálu.
$PSScriptRoot Obsahuje úplnou cestu k nadřazenému adresáři spouštěného skriptu.
$PSSenderInfo Obsahuje informace o uživateli, který spustil PSSession.
$PSUICkultura Odráží kulturu uživatelského rozhraní (UI) nakonfigurovanou v operačním systému.
$PWD Představuje aktuální pracovní adresář relace PowerShellu.
$Sender Obsahuje objekt, který vygeneroval událost.
$ShellId Obsahuje identifikátor aktuálního shellu.
$StackTrace Ukládá trasování zásobníku pro nejnovější chybu.
$spínač Obsahuje enumerátor příkazu „Switch“.
$toto Odkazuje na instanci třídy v blocích skriptu, které rozšiřují třídy.
$pravda Představuje booleovskou hodnotu „True“.

Všechny „automatické proměnné“ v PowerShellu lze najít spuštěním následujícího příkazu:

Get-Variable

Závěr

Automatické proměnné ” tvoří páteř skriptování PowerShell, která vývojářům umožňuje získat informace o systému, argumenty příkazového řádku, kontext provádění skriptu a další. Využitím automatických proměnných, jako jsou „$PSVersionTable“, „$Args“, „$MyInvocation“, „$Error“ a další, mohou vývojáři skriptů PowerShell vytvářet zjednodušené postupy správy systému.