PowerShell

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
PowerShell Veri Tipi Dönüşüm Hatası
PowerShell Veri Tipi Dönüşüm Hatası

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.
PowerShell Int32 Tip Dönüşümü Hatası
PowerShell Int32 Tip Dönüşümü Hatası
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.

Yoluyla
PowerShell Nedir?PowerShell TarihçesiPowerShell ÖzellikleriÖrnek PowerShell KomutlarıPowerShell Diziler
Etiketler
Daha Fazla Göster

Ahmet Elibol

Üniversite eğitimini Kimya ve İşletme bölümlerinde tamamlayan Ahmet Elibol, yüksek lisans eğitimini de İşletme (Master of Business Administration - MBA) üzerinde tamamlamıştır. 1999 yılından bu yana bilişim sektöründe bulunmaktadır ve şu anda Rönesans Holding şirketinde CIO (Chief Information Officer) pozisyonunda görev yapmaktadır.  Ahmet Elibol, profesyonel kariyerine aldığı pascal ve delphi ile yazılım mühendisliği eğitimiyle başlamıştır. 2004 yılından sonra ilgi ve uzmanlık alanlarını Microsoft Sunucu Sistemleri, Sistem Programlama ve Bilgi Güvenliği konularında güncellemiştir. Yazar 4 yıl kadar bir akademide Sistem Mühendisliği eğitimleri vermiştir. Yazar hobi amaçlı programlama, yapay zeka, makine öğrenmesi, yapay sinir ağları, görüntü işleme ve nesnelerin interneti konularında çalışmaktadır. İngilizce, Rusça dillerini bilen Ahmet Elibol MCT, MCITP, MCTS, MCSE, MCSA vb. uzmanlık sertifikalarına sahiptir ve Bilgisayar Mühendisliği yüksek lisansına devam etmektedir.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı
Kapalı