PowerShell Değişkenler
PowerShell Değişken Nasıl Tanımlanır? PowerShell Variables, PowerShell Concat, PowerShell Cast Object
PowerShell Değişkenler
PowerShell değişkenler tiplerini varsayılan olarak otomatik seçer. Yani atanan veriye göre bir veri türü seçer. Örneğin, değişken $age=1 şeklinde ise int32, $personel = “Ahmet” ise otomatik olarak string tür ataması yapılır. PowerShell değişkenkenler, $ simgesiyle başlar. PowerShell değişkenler büyük / küçük harfe duyarlı değildir ve herhangi bir harf, sayı ve özel karakter içerebilir. Özel karakterler söz konusu olduğunda, {} içine almaları gerekir, örneğin, ${Aktif Dizin 10 Uzerinden Derecelendirmesi} = 10 tanımlamasında ${Aktif Dizin 10 Uzerinden Derecelendirmesi} girişi için 10 çıktısı alınır.
PowerShell Değişkenler Örnek:
PS C:\aktifdizin> ${Aktif Dizin 10 Uzerinden Derecelendirmesi} = 10 ${Aktif Dizin 10 Uzerinden Derecelendirmesi} 10 PS C:\aktifdizin>
PowerShell Değişken Nasıl Tanımlanır?
Değişken tanımlamak, bir değişkenin veri türü veya temel özelliği ile adlandırılması anlamına gelir. PowerShell dünyasında bir değişken tanımlanması, sadece o değişkenin belleğe bildirilmesidir. String veya integer gibi bir değişken atadığımızda, değişkenin veri türü bildirimi belleğe otomatik olarak yapılır ve buna göre bellekte sıralanarak saklanır.
Değişken tanımı yapılırken, sistemi sadece değişken türü ve isimleri hakkında bilgilendirmiş oluruz. Ancak tanımda, değişkeni tutmak için gereken bellek boyutunu belirtmeyiz. PowerShell değişken tanımlamaları yapılırken, sistem tarafından birçok işlem bizim adımıza otomatik olarak yapılır.
PowerShell, integer, string, float, boolean, decimal vb. birçok veri türünü destekler. Bir değişkenin veri türünü açıkça bildirmeniz gerekmez. PowerShell, başlatma sırasında veri türünü otomatik olarak seçer. PowerShell ayrıca başlatma sırasında veri türü dönüşümü de sağlar.
PS C:\aktifdizin> $number= "Ahmet Elibol" #string $number= 34 #int32 $sum= $number+$number $sum 68 PS C:\aktifdizin>
PowerShell’de, herhangi bir değişken için kesin olarak veri türü tanımlayabiliriz. Aşağıdaki örnekte, değişkeni kesin olarak tanımladık, böylece değişkene yalnızca o veri türüyle ilgili verileri atayabiliriz.
[Int]$number="Ahmet" #Integere dönüşemeyecek bir string atadığımız için hata fırlatacaktır. [Int]$number=23
Ancak aşağıdaki şekilde string tipinde bir değişkenin integer tipine dönüşümü de sağlanabilir.
PS C:\aktifdizin> [Int]$number= "35" $number 35 PS C:\aktifdizin>
PowerShell’de değişkenin otomatik dönüşümünün anlaşılabilmesi için aşağıdaki örnek incelenebilir. Başlangıçta değişkene bir string değer atadık ve kontrol edildiğinde türünün string olduğunu gördük. Ardından aynı değişken için tam sayı tipinde bir değer atadık ve otomatik olarak tipin Int32 dönüştüğünü gördük.
PS C:\aktifdizin> $id ="Aktif Dizin" $id.GetType().Name $id=38 $id.GetType().Name String Int32 PS C:\aktifdizin>
Bir değişken tanımlarken, sisteme başlangıçta değişkeni tutmak için gereken bellek boyutunu bir şekilde anlatmak gerekir. Herşey otomatik oluyor diye her zaman sisteme güvenerek hareket etmek doğru bir yaklaşım olmayabilir.
PS C:\aktifdizin> $yas=0 $yas=$yas+1 $yas=$yas+1 $yas=$yas+1 $yas=$yas+1 $yas 4 PS C:\aktifdizin>
PS C:\aktifdizin> $yas="Sıfır" $yas=$yas+1 $yas=$yas+1 $yas=$yas+1 $yas=$yas+1 $yas Sıfır1111 PS C:\aktifdizin>
Görüleceği üzere sistem veri tipi seçimini her zaman istediğimiz gibi yapmamış olabilir ve bu yüzden hata alınabilir.
PowerShell Değişkenler İçin Kurallar ve Düzenlemeler
PowerShell değişkenleri tanımlarken uyulması gereken bazı kuralları ele alalım. PowerShell değişkenleri her zaman $ simgesiyle başlar. Harfler, rakamlar ve alt çizgilerden oluşan bir kombinasyon içerebilir. Bunun dışındaki karakterleri kullanmanın gerçekten önemli olduğunu düşünüyorsanız, bunları süslü parantez içine almanız gerekir. Önceden tanımlanmış değişkenlerin adını kullanmamalı ve string bir değeri kesin olarak tam sayı şeklinde tanımlanmış bir değişkene atamamaya çalışmalısınız. Aksi takdirde hata alırsınız. PowerShell dilinde, $$, $?, $^ ve $_ rezerve edilmiştir.
Geçerli PowerShell değişken isimlendirme örnekleri:
$okulDerecesi, $OkulDerecesi, $OkulDerecesi_1, ${okul-tipi bilinmiyor}
Aşağıda tanımlanması doğru olmayan bazı PowerShell değişkenleri görülebilir.
schoolName, $school-type, $school type
PowerShell Değişken Örnekleri
PS C:\aktifdizin> $courseID = 1, 2, 3 $courseID.GetType().Name # Object[] $courseID="Aktif Dizin" #String tipinde bir data verdik. $courseID.GetType().Name # String $courseID=23 $courseID.GetType().Name #Int32 $courseID=$FALSE $courseID.GetType().Name #Boolean #Çıktılar Object[] String Int32 Boolean PS C:\aktifdizin>
[int]$okulNumarası = 81 #Integer tipinde veri olacağı kesin olarak tanımlandı. $okulNumarası = "9999" #Integer tipine dönüştürülebilir bir veri olduğu için dönüştürülür. $okulNumarası = "zero" #Bu veri Integer olarak dönüştürülemez ve hata verecektir.
PS C:\aktifdizin> [string]$site = "Aktif Dizin" $site = 30 #Integer, string tipine dönüşecektir. $site += 10 #String olarak devam edecektir. $site += 21 $site += 31 $site #=================== $site = 30 [string]$site = "Aktif Dizin" #Integer, string tipine dönüşecektir. $site += 10 #String olarak devam edecektir. $site += 21 $site += 31 $site #Çıktılar: 30102131 Aktif Dizin102131 PS C:\aktifdizin>
Date tipi için dönüşüm örneği:
PS C:\aktifdizin> [datetime]$DOB = "03/03/08" #String, Date tipine dönüşecektir. $DOB 3 Mart 2008 Pazartesi 00:00:00 PS C:\aktifdizin>
PowerShell Değişkenler
Makalesini okuduğunuz için teşekkür ederiz. Soru ve önerileriniz için aşağıdaki formu kullanarak bize ulaşabilirsiniz. “Örnek PowerShell Komutları” makalesi de ilginizi çekebilir. Microsoft PowerShell makale serimiz devam edecektir.