PowerShell'de Otomatik Değişkenler nelerdir?

Powershell De Otomatik Degiskenler Nelerdir



PowerShell'in ' Otomatik Değişkenler ” sistem yönetimi, otomasyon ve komut dosyası oluşturma etkinlikleri için gereklidir. Bu değişkenler, PowerShell çalışma zamanı tarafından yerleşiktir ve bir betiğin veya komutun yürütülmesi sırasında belirli bilgileri depolamak ve bunlara başvurmak için yer tutucular olarak işlev görür. Bu otomatik değişkenleri etkili bir şekilde anlamak ve kullanmak, PowerShell betiklerinin verimliliğini ve işlevselliğini büyük ölçüde artırabilir.

Bu makale, PowerShell'deki 'Otomatik Değişkenler' kavramını, bunların önemini ve çeşitli senaryolarda nasıl kullanılabileceğini keşfetmeyi amaçlamaktadır.







PowerShell'de Otomatik Değişkenler nelerdir?

Başlamak için, ' tanımını inceleyelim Otomatik Değişkenler ”. Bu değişkenler önceden tanımlanmıştır ve betik yürütme sırasında PowerShell tarafından otomatik olarak oluşturulur. Bunlar, sistem hakkında bilgi sağlama, komut satırı bağımsız değişkenleri, komut dosyasıyla ilgili ayrıntılar ve çok daha fazlası dahil olmak üzere farklı amaçlara hizmet eder.



PowerShell birkaç 'Otomatik Değişken' sunar ve bunların her biri betik yürütmede farklı bir amaca hizmet eder. Bu değişkenler aşağıdaki gibidir:



1. $PSVersionTable

PowerShell'deki temel otomatik değişkenlerden biri “ $PSVersionTable ”. Bu değişken, betik geliştiricilerin, belirli özelliklerin ve işlevlerin uyumluluğu ve kullanılabilirliği düşünüldüğünde çok önemli olabilecek, kullanılan PowerShell sürümünü belirlemesine olanak tanır.





Aşağıdaki özellikler bu değişkenle ilişkilidir:

PS Sürümü: PowerShell sürüm numarasını döndürür.



PS Sürümü: PowerShell 4 ve öncesi ile tam özellikli Windows sürümlerinde PowerShell 5.1 için bu özellik 'Masaüstü' değerine sahiptir. Bu özellik, PowerShell 6 ve sonrası için Core değerine ve ayrıca Windows Nano Server veya Windows IoT gibi az yer kaplayan sürümler için Windows PowerShell 5.1 değerine sahiptir.

GitCommitId: Kaynak dosyaların GitHub taahhüt kimliğini getirir.

SEN: PowerShell'in kullandığı bilgisayar sistemi hakkındaki bilgileri günlüğe kaydeder.

platformu: İşletim sisteminin destekleyici platformunu döndürür. Unix, Linux ve macOS'ta değere sahiptir. $IsMacOs ve $IsLinux'a göz atın.

PS Uyumlu Sürümler: Geçerli sürümle uyumlu PowerShell sürümleri döndürülür.

PSRemotingProtocolSürümü: PowerShell uzaktan yönetim protokolü için sürüm numarasını döndürür.

Serileştirme Sürümü: Serileştirme yönteminin sürümünü döndürür.

WSManStack Sürümü: WS-Management yığınının sürüm numarasını döndürür.

$ PSVersionTable

2. $Args

PowerShell'deki diğer bir temel otomatik değişken ' $Args ”, bir komut dosyasına veya işleve iletilen bir dizi komut satırı argümanı içerir. Bu değişken, geliştiricilerin sağlanan bağımsız değişkenleri komut dosyalarında dinamik olarak işlemesine ve değiştirmesine olanak tanır.

Bir fonksiyonu tanımlarken, parametreleri bildirmek için “param” anahtar kelimesini kullanabilir veya fonksiyon adının ardından parantez içinde virgülle ayrılmış bir parametre listesi ekleyebilirsiniz. Bir olay eyleminin '$Args' değişkeni, işlenmekte olan olayın olay parametreleri için yer tutucu görevi gören nesneleri depolar:

her biri için ( $arg içinde $Args ) {
Yazma Sunucusu $arg
}

3. $Benim Çağrım

$Benim Çağrım ” değişkeni, o anda çalışmakta olan komut dosyası veya prosedür hakkında önemli arka plan verileri verir. Komut dosyası adı, komut satır numarası ve komut dosyasının etkileşimli veya etkileşimsiz olarak çalıştırılıp çalıştırılmadığı gibi özellikler sunar. Bu özellikler, betik geliştiricilerin dallanma mantığını uygulamalarına, hata işleme mekanizmalarını tanımlamasına veya anlamlı günlük kaydı ve raporlama oluşturmasına yardımcı olur:

$ Çağrılarım

4. $Hata

Daha az bilinen bir otomatik değişken ' $Hata ”, komut dosyası yürütme sırasında oluşan tüm hata mesajlarını veya istisnaları etkili bir şekilde yakalar. İstisna mesajları, yığın izleri veya hata kodları gibi belirli hata ayrıntılarını almak için '$Error'a erişilebilir, bu da ayrıntılı analiz ve hata ayıklamaya olanak tanır.

En son hata, “ dizisindeki ilk hata nesnesi tarafından temsil edilir. $Hata[0] “. Hataların “$Error” dizisine eklenmesini durdurmak için “Ignore” değeriyle ErrorAction ortak seçeneğini kullanabilirsiniz.

Doğru bir komut yazdığımızı varsayalım:

ip [ yapılandırma

Şimdi “$Error” cmdlet'ini girersek:

$ Hata

5. $PSCmdlet'i

PowerShell modülleriyle çalışırken otomatik değişken ' $PSCmdlet ” yürürlüğe girer. Bu değişken, çağrılan cmdlet veya işlevin geçerli örneğine erişim sağlayarak, özellikleri ve yöntemleriyle doğrudan etkileşimi kolaylaştırır.

Gelişmiş komut dosyası geliştiricileri, '$PSCmdlet' kullanarak, yerleşik işlevleri genişleterek veya değiştirerek modüllerin davranışını ince ayar yapabilir ve geliştirebilir. Kullanım ölçütlerine yanıt olarak, nesnenin özniteliklerini ve yöntemlerini cmdlet'inizde veya işlev kodunuzda kullanabilirsiniz:

işlev typeof-psCmdlet {
[ cmdletBağlama ( ) ] parametre ( )
Eko ' türü ` $psCmdlet dır-dir $($psCmdlet.GetType() .Ad Soyad)'
}

typeof-psCmdlet

Yukarıda belirtilen değişkenlere ek olarak PowerShell, girdiye erişme, hataları izleme, ortam bilgilerini alma, parametreleri yönetme ve çok daha fazlası gibi farklı amaçlara hizmet eden $HOME, $PROFILE, $PWD ve daha pek çok otomatik değişkeni kapsar. Bu değişkenler aşağıda listelenmiştir:

Otomatik Değişkenler Tanım
$$ PowerShell oturumu tarafından alınan önceki satırdaki son belirteci tutar.
$? Son komutun yürütme durumunu saklar.
$^ Oturum tarafından alınan son satırın ilk belirtecini içerir.
$_ Ardışık düzendeki geçerli nesneyi temsil eder.
$KonsolDosyaAdı Oturumda en son kullanılan konsol dosyasının (.psc1) yolunu içerir.
$EnabledDeneyselÖzellikler Etkinleştirilmiş deneysel özelliklerin bir listesini içerir.
$Olay İşlenmekte olan olayı temsil eden bir 'PSEventArgs' nesnesi içerir.
$EventArgs İşlenmekte olan olayın ilk olay bağımsız değişkenini içerir.
$EtkinlikAbonesi İşlenmekte olan olayın olay abonesini temsil eder.
$Yürütme Bağlamı PowerShell ana bilgisayarının yürütme bağlamını temsil eder.
$yanlış 'False' Boolean değerini temsil eder.
$foreach Bir 'for-Each' döngüsünün numaralandırıcısını içerir.
$ANA SAYFA Kullanıcının ana dizininin tam yolunu içerir.
$Ana Bilgisayar PowerShell için geçerli ana bilgisayar uygulamasını temsil eder.
$ giriş Bir işleve veya komut dosyasına iletilen tüm girdiler için numaralandırıcı görevi görür.
$IsCoreCLR Oturumun .NET Core Runtime (CoreCLR) üzerinde çalışıp çalışmadığını gösterir.
$IsLinux Oturumun bir Linux işletim sisteminde çalışıp çalışmadığını gösterir.
$IsMacOS Oturumun bir MacOS işletim sisteminde çalışıp çalışmadığını gösterir.
$IsWindows Oturumun bir Windows işletim sisteminde çalışıp çalışmadığını tanımlar.
$SONEXITCODE Son yerel programın veya PowerShell betiğinin çıkış kodunu depolar.
$Eşleşmeler '-match' ve '-notmatch' işleçlerinden eşleşen dizeleri içerir.
$ NestedPromptLevel İç içe geçmiş komutlarda veya hata ayıklama senaryolarında geçerli bilgi istemi düzeyini izler.
$null Null veya boş bir değeri temsil eder.
$PID PowerShell oturumunun işlem tanımlayıcısını (PID) içerir.
$PROFİL Geçerli kullanıcı ve ana bilgisayar uygulaması için PowerShell profilinin tam yolunu içerir.
$PSBoundParametreleri Bir komut dosyasına veya işleve iletilen parametrelerin ve bunların değerlerinin sözlüğünü tutar.
$PSCommandPath Yürütülmekte olan komut dosyasının tam yolunu ve dosya adını içerir.
$PSKültür Geçerli PowerShell çalıştırma alanının kültürünü yansıtır.
$PSEdition PowerShell sürüm bilgilerini içerir.
$PSHOME PowerShell kurulum dizininin tam yolunu içerir.
$PSItem $_ ile aynı, ardışık düzendeki geçerli nesneyi temsil eder.
$PSScriptRoot Yürütülen betiğin üst dizininin tam yolunu içerir.
$PSSenderInfo PSSession'ı başlatan kullanıcı hakkında bilgi içerir.
$PSUICulture İşletim sisteminde yapılandırılan kullanıcı arabirimi (UI) kültürünü yansıtır.
$PWD PowerShell oturumunun geçerli çalışma dizinini temsil eder.
$Gönderen Bir olayı oluşturan nesneyi içerir.
$Kabuk Kimliği Geçerli kabuğun tanımlayıcısını içerir.
$ Yığın İzleme En son hata için yığın izini saklar.
$ anahtarı “Switch” ifadesinin numaralandırıcısını içerir.
$bu Sınıfları genişleten betik bloklarındaki bir sınıfın örneğini ifade eder.
$doğru 'True' Boolean değerini temsil eder.

PowerShell'deki tüm 'otomatik değişkenler' aşağıdaki komutu çalıştırarak bulunabilir:

Get-Değişkeni

Çözüm

Otomatik Değişkenler ”, PowerShell komut dosyası oluşturmanın omurgasını oluşturur ve geliştiricilerin sistem, komut satırı bağımsız değişkenleri, komut dosyası yürütme bağlamı ve daha fazlası hakkında bilgi edinmesine olanak tanır. PowerShell komut dosyası geliştiricileri, '$PSVersionTable', '$Args', '$MyInvocation', '$Error' ve diğerleri gibi otomatik değişkenlerden yararlanarak kolaylaştırılmış sistem yönetimi uygulamaları oluşturabilir.