Ano ang Mga Awtomatikong Variable sa PowerShell

Ano Ang Mga Awtomatikong Variable Sa Powershell



Ang 'PowerShell's' Mga Awtomatikong Variable ” ay mahalaga para sa pamamahala ng system, automation, at mga aktibidad sa pag-script. Ang mga variable na ito ay built-in ng PowerShell runtime at nagsisilbing mga placeholder upang mag-imbak at mag-reference ng partikular na impormasyon sa panahon ng pagpapatupad ng isang script o command. Ang pag-unawa at paggamit ng mga awtomatikong variable na ito nang epektibo ay maaaring lubos na mapahusay ang kahusayan at paggana ng mga script ng PowerShell.

Ang artikulong ito ay naglalayong tuklasin ang konsepto ng 'Mga Awtomatikong Variable' sa PowerShell, ang kanilang kahalagahan, at kung paano sila magagamit sa iba't ibang mga sitwasyon.







Ano ang Mga Awtomatikong Variable sa PowerShell?

Upang magsimula, alamin natin ang kahulugan ng ' Mga Awtomatikong Variable ”. Ang mga variable na ito ay paunang natukoy at awtomatikong nilikha ng PowerShell sa panahon ng pagpapatupad ng script. Ang mga ito ay nagsisilbi sa iba't ibang layunin, kabilang ang pagbibigay ng impormasyon tungkol sa system, mga argumento sa command-line, mga detalyeng nauugnay sa script, at marami pang iba.



Nag-aalok ang PowerShell ng ilang 'Mga Awtomatikong Variable' at bawat isa sa kanila ay nagsisilbi ng isang natatanging layunin sa pagpapatupad ng script. Ang mga variable na ito ay ang mga sumusunod:



1. $PSVersionTable

Ang isa sa mga pangunahing awtomatikong variable sa PowerShell ay ' $PSVersionTable ”. Nagbibigay-daan ang variable na ito sa mga developer ng script na tiyakin ang bersyon ng PowerShell na ginagamit, na maaaring maging mahalaga kapag isinasaalang-alang ang compatibility at availability ng ilang feature at functionality.





Ang mga sumusunod na katangian ay nauugnay sa variable na ito:

PSVersion: Ibinabalik ang numero ng bersyon ng PowerShell.



PSEdition: Para sa PowerShell 4 at mas nauna, pati na rin sa PowerShell 5.1 sa mga full-feature na bersyon ng Windows, ang property na ito ay may value na “Desktop.” Ang katangiang ito ay may halaga ng Core para sa PowerShell 6 at mas bago, pati na rin ang Windows PowerShell 5.1 para sa mga low-footprint na edisyon tulad ng Windows Nano Server o Windows IoT.

GitCommitId: Kinukuha ang GitHub commit ID ng mga source file.

IKAW: Nagla-log ng impormasyon tungkol sa computer system na ginagamit ng PowerShell.

Platform: Ibinabalik ang sumusuportang platform ng operating system. Ang Unix ay may halaga sa Linux at macOS. Tingnan ang $IsMacOs at $IsLinux.

Mga Bersyon ng PSCompatible: Ibinabalik ang mga bersyon ng PowerShell na tugma sa kasalukuyang bersyon.

PSRemotingProtocolVersion: Ibinabalik ang numero ng bersyon para sa PowerShell remote management protocol.

SerializationVersion: Ibinabalik ang bersyon ng serialization method.

WSManStackVersion: Ibinabalik ang numero ng bersyon ng WS-Management stack.

$ PSVersionTable

2. $Args

Ang isa pang mahalagang awtomatikong variable sa PowerShell ay “ $Args ”, na naglalaman ng hanay ng mga argumento ng command-line na ipinasa sa isang script o function. Ang variable na ito ay nagbibigay ng kapangyarihan sa mga developer na iproseso at manipulahin ang mga ibinigay na argumento nang pabago-bago sa loob ng kanilang mga script.

Kapag tinutukoy ang isang function, maaari mong gamitin ang keyword na 'param' upang ideklara ang mga parameter o maaari kang magdagdag ng listahan ng mga parameter na pinaghihiwalay ng kuwit sa mga panaklong kasunod ng pangalan ng function. Ang variable na '$Args' ng pagkilos ng kaganapan ay nag-iimbak ng mga bagay na nagsisilbing mga placeholder para sa mga parameter ng kaganapan ng kaganapang pinangangasiwaan:

foreach ( $arg sa $Args ) {
Write-Host $arg
}

3. $MyInvocation

Ang ' $MyInvocation ” variable ay nagbibigay ng mahalagang data sa background tungkol sa script o pamamaraan na kasalukuyang tumatakbo. Nag-aalok ito ng mga pag-aari tulad ng pangalan ng script, numero ng linya ng script, at kung ang script ay pinapatakbo nang interactive o hindi interactive. Tinutulungan ng mga property na ito ang mga developer ng script na ipatupad ang branching logic, tukuyin ang mga mekanismo sa paghawak ng error, o bumuo ng makabuluhang pag-log at pag-uulat:

$ MyInvocation

4. $Error

Isang hindi gaanong kilalang awtomatikong variable ' $Error ”, epektibong kumukuha ng anumang mga mensahe ng error o pagbubukod na nangyayari sa panahon ng pagpapatupad ng script. Maaaring ma-access ang “$Error” upang mabawi ang mga partikular na detalye ng error gaya ng mga exception message, stack trace, o error code, na nagpapagana ng detalyadong pagsusuri at pag-debug.

Ang pinakahuling error ay kinakatawan ng unang error object sa array ' $Error[0] “. Maaari mong gamitin ang ErrorAction common na opsyon na may value na “Balewalain” para pigilan ang mga error na maidagdag sa array na “$Error”.

Ipagpalagay na nag-type kami ng tumpak na utos:

ip [ onfig

Ngayon, kung ipasok natin ang '$Error' cmdlet:

$ Error

5. $PSCmdlet

Kapag nagtatrabaho sa mga module ng PowerShell, ang awtomatikong variable na ' $PSCmdlet ” ay magkakabisa. Ang variable na ito ay nagbibigay ng access sa kasalukuyang instance ng cmdlet o function na ini-invoke, na nagpapadali sa direktang pakikipag-ugnayan sa mga katangian at pamamaraan nito.

Gamit ang '$PSCmdlet', ang mga advanced na script developer ay maaaring mag-fine-tune at mapahusay ang gawi ng mga module sa pamamagitan ng pagpapalawak o pagbabago sa mga built-in na functionality. Maaari mong gamitin ang mga katangian at pamamaraan ng object sa iyong cmdlet o function code bilang tugon sa pamantayan ng paggamit:

function uri ng-psCmdlet {
[ cmdletBinding ( ) ] param ( )
echo 'uri ng ` $psCmdlet ay $($psCmdlet.GetType() .Buong pangalan)'
}

uri ng-psCmdlet

Bilang karagdagan sa mga nabanggit na variable, ang PowerShell ay sumasaklaw sa mga awtomatikong variable tulad ng $HOME, $PROFILE, $PWD, at marami pa, na nagsisilbi sa iba't ibang layunin, tulad ng pag-access sa input, mga error sa pagsubaybay, pagkuha ng impormasyon sa kapaligiran, pamamahala ng mga parameter, at marami pa. Ang mga variable na ito ay nakalista sa ibaba:

Mga Awtomatikong Variable Paglalarawan
$$ Hawak ang huling token sa nakaraang linyang natanggap ng PowerShell session.
$? Iniimbak ang katayuan ng pagpapatupad ng huling utos.
$^ Naglalaman ng unang token ng huling linya na natanggap ng session.
$_ Kinakatawan ang kasalukuyang bagay sa pipeline.
$ConsoleFileName Naglalaman ng path ng console file (.psc1) na pinakakamakailang ginamit sa session.
$EnabledExperimentalFeatures Naglalaman ng listahan ng mga pinaganang pang-eksperimentong feature.
$Event Naglalaman ng object na 'PSEventArgs' na kumakatawan sa kaganapang pinoproseso.
$EventArgs Naglalaman ng unang argumento ng kaganapan ng kaganapang pinoproseso.
$EventSubscriber Kinakatawan ang subscriber ng kaganapan ng kaganapang pinoproseso.
$ExecutionContext Kinakatawan ang konteksto ng pagpapatupad ng host ng PowerShell.
$false Kinakatawan ang Boolean value na “False”.
$foreach Naglalaman ng enumerator ng 'para sa-Bawat' loop.
$HOME Naglalaman ng buong path ng home directory ng user.
$Host Kinakatawan ang kasalukuyang host application para sa PowerShell.
$input Nagsisilbing enumerator para sa lahat ng input na ipinasa sa isang function o script.
$IsCoreCLR Isinasaad kung tumatakbo ang session sa .NET Core Runtime (CoreCLR).
$IsLinux Isinasaad kung ang session ay tumatakbo sa isang Linux operating system.
$IsMacOS Isinasaad kung ang session ay tumatakbo sa isang MacOS operating system.
$IsWindows Kinikilala kung ang session ay tumatakbo sa isang Windows operating system.
$LASTEXITCODE Iniimbak ang exit code ng huling native program o PowerShell script.
$Matches Naglalaman ng mga katugmang string mula sa '-match' at '-notmatch' na mga operator.
$NestedPromptLevel Sinusubaybayan ang kasalukuyang antas ng prompt sa mga nested na command o mga sitwasyon sa pag-debug.
$null Kumakatawan sa isang null o walang laman na halaga.
$PID Naglalaman ng process identifier (PID) ng PowerShell session.
$PROFILE Naglalaman ng buong path ng PowerShell profile para sa kasalukuyang user at host application.
$PSBoundParameters May hawak na diksyunaryo ng mga parameter na ipinasa sa isang script o function at ang mga halaga ng mga ito.
$PSCommandPath Naglalaman ng buong path at filename ng script na isinasagawa.
$PSCulture Sinasalamin ang kultura ng kasalukuyang PowerShell run space.
$PSEdition Naglalaman ng impormasyon ng edisyon ng PowerShell.
$PSHOME Naglalaman ng buong landas ng direktoryo ng pag-install ng PowerShell.
$PSItem Kapareho ng $_, ay kumakatawan sa kasalukuyang bagay sa pipeline.
$PSScriptRoot Naglalaman ng buong path ng parent directory ng executing script.
$PSSenderInfo Naglalaman ng impormasyon tungkol sa user na nagsimula sa PSSession.
$PSUICulture Sinasalamin ang kultura ng user interface (UI) na na-configure sa operating system.
$PWD Kinakatawan ang kasalukuyang gumaganang direktoryo ng PowerShell session.
$Sender Naglalaman ng bagay na nakabuo ng isang kaganapan.
$ShellId Naglalaman ng identifier ng kasalukuyang shell.
$StackTrace Iniimbak ang stack trace para sa pinakabagong error.
$switch Naglalaman ng enumerator ng 'Switch' na pahayag.
$ito Tumutukoy sa halimbawa ng isang klase sa mga bloke ng script na nagpapalawak ng mga klase.
$totoo Kinakatawan ang Boolean value na “True”.

Ang lahat ng 'awtomatikong variable' sa PowerShell ay matatagpuan sa pamamagitan ng pagpapatakbo ng command sa ibaba:

Get-Variable

Konklusyon

Mga Awtomatikong Variable ” na bumubuo sa backbone ng PowerShell scripting, na nagpapahintulot sa mga developer na makakuha ng impormasyon tungkol sa system, mga argumento ng command-line, konteksto ng pagpapatupad ng script, at higit pa. Sa pamamagitan ng paggamit ng mga awtomatikong variable gaya ng '$PSVersionTable', '$Args', '$MyInvocation', '$Error', at iba pa, ang mga developer ng PowerShell script ay maaaring gumawa ng mga naka-streamline na kasanayan sa pangangasiwa ng system.