PowerShell

PowerShell Cmdlet Nedir?

PowerShell Cmdlet Nedir? Cmdlet Nasıl Kullanılır? PowerShell Cmdlet Örnekleri, PowerShell Komut Listesi, Yararlı PowerShell Komutları, PowerShell Script Örnekleri

PowerShell Cmdlet Nedir?

PowerShell Cmdlet (Command Let), PowerShell ile belirli görevleri gerçekleştirmek için çeşitli lokal işlevleri uygulayan özel komutlardır. Bu komutlar sadece Windows PowerShell ortamında kullanılabilir ve herhangi bir otomasyon script dosyası yazarken oldukça kullanışlıdırlar.

Bu makalede bazı yararlı PowerShell komutları, bir PowerShell komut listesi üzerinden, PowerShell script örnekleri ile anlatılacaktır.

PowerShell Cmdlet

PowerShell Cmdlets çalıştırıldığında gereken eylemleri gerçekleştirir ve bir Microsoft .NET framework nesnesini ardışık düzende bir sonraki komuta döndürebilir. Cmdlets nesneleri girdi olarak alabilir ve sonuçlarını yine nesne olarak çıktılayabilir. Bu da onları bir PowerShell Pipeline kullanımında alıcı olarak kullanılmaya uygun hale getirir.

PowerShell Cmdlet Örnekleri

Get-Unique

Get-Unique cmdlet, sıralı bir listeseden benzersiz elemanları getiren bir cmdlet’tir.

Örnek 1:

PS /home/ahmet> 1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | Sort-Object | Get-Unique
1
3
4
5
12
23
4643
PS /home/ahmet>

Örnek 2:

PS /home/ahmet> $isimler=@("ahmet","attila","mete","süleyman","fatih","ahmet","attila")
PS /home/ahmet> $isimler | Sort-Object | Get-Unique
ahmet
attila
fatih
mete
süleyman
PS /home/ahmet>

Sort-Object

Sort-Object, nesneleri özelliklerine göre sıralamak için kullanılır.

Örnek:

PS /home/ahmet> $isimler=@("ahmet","attila","mete","süleyman","fatih")
PS /home/ahmet> $isimler | Sort-Object
ahmet
attila
fatih
mete
süleyman
PS /home/ahmet>

Sort

Sıralama, herhangi bir programlama dilinin en önemli beklentilerinden biridir. Çoğu zaman belli kayıtlara sahip olunabilir ve belirli bir sırada veriler görülmek istenecektir. Örneğin; bazı kullanıcı verileri var, ancak bu veriyi alfabetik sırada istiyoruz. İşte ancak bu şekilde benzersiz sonuçlar elde etmek için get-unique kullanılabilir.

Örnek:

PS /home/ahmet> $kullanicilar=@("ahmet","attila","mete","süleyman","fatih","ahmet","attila")
PS /home/ahmet> $kullanicilar | sort | Get-Unique
ahmet
attila
fatih
mete
süleyman
PS /home/ahmet>

Measure-Object

Bir dosya olduğunu ve dosyadaki satır, kelime ve karakter sayısının bilinmesi gerektiğini varsayalım. Bu tür durumlarda Measure-Object cmdlet kullanılabilir. Measure-Object cmdlet, verilen verinin min, max, boyut, sayı, satır, vb. özelliklerini almak için kullanılabilir.

Örnek:

Bilgisayarınızda “web.txt” isimli bir dosya olduğunu varsayalım. Bu dosyanın birinci satırında “aktifdizin” ve ikinci satırında “servisi” yazsın:

PS /home/ahmet> get-content /home/ahmet/web.txt | Measure-Object -Line -Character -Word                     
Lines Words Characters Property
----- ----- ---------- --------
    2     2         17

PS /home/ahmet>
PS /home/ahmet> get-content /home/ahmet/web.txt | Measure-Object -Word | Select-Object -Expand Words    
2
PS /home/ahmet>

Compare-Object

Birbirine benzer iki dosyayı karşılaştırmaya ve farklarını bulmaya yarar.

Örnek:

PS /home/ahmet> ls
dosya1.txt  dosya2.txt
PS /home/ahmet> Get-Content ./dosya1.txt
Merhaba Arkadaşlar
PowerShell Dersleri Nasıl Gidiyor?
Hepinize Başarılar!
PS /home/ahmet> Get-Content ./dosya2.txt
Merhaba Arkadaşlar
PS /home/ahmet>

Yukarıda görüleceği üzere, “Merhaba Arkadaşlar” satırı harici kalan veri, iki dosya arasındaki farktır.

PS /home/ahmet> Compare-Object -ReferenceObject $(Get-Content ./dosya1.txt) -DifferenceObject $(Get-Content ./dosya2.txt)

InputObject                        SideIndicator
-----------                        -------------
PowerShell Dersleri Nasıl Gidiyor? <=
Hepinize Başarılar!                <=

PS /home/ahmet>

Read-Host

Bu Cmdlet komutu, girilen değerin okumamızı sağlar.

Örnek:

PS /home/ahmet> $sehir = Read-Host "Nerelisiniz?"
Nerelisiniz?: Ankara
PS /home/ahmet> $sehir
Ankara
PS /home/ahmet>

Start-Sleep

Oturumu birkaç saniyeliğine askıya alınması istenildiğinde, “Start-Sleep” kullanılabilir.

PS /home/ahmet> Get-Date
Friday, January 31, 2020 5:58:27 PM

PS /home/ahmet> Start-Sleep 15

PS /home/ahmet> Get-Date
Friday, January 31, 2020 5:58:45 PM

PS /home/ahmet>

Invoke-History

Çalışma sırasında geçmiş aktivitesini yani girilen komutların görülmek istendiğini varsayalım.

Örnek:

PS /home/ahmet> Invoke-History
Compare-Object -ReferenceObject $(Get-Content ./dosya1.txt) -DifferenceObject $(Get-Content ./dosya2.txt)

InputObject                        SideIndicator
-----------                        -------------
PowerShell Dersleri Nasıl Gidiyor? <=
Hepinize Başarılar!                <=

PS /home/ahmet>

Get-History

Get-History cmdlet tüm çalıştırılmış komutların geçmişini listeler.

PowerShell Get-History Cmdlet
PowerShell Get-History Cmdlet

ForEach-Object

Bu çok sık kullanılan bir komuttur. Bazı öğrenci numaralarının olduğunu ve her öğrencinin numarasına 10 eklemek istendiğini varsayalım.

PS /home/ahmet> $numara = 1000,1002,1004,1005
PS /home/ahmet> $numara | ForEach-Object -Process {$_+10}
1010
1012
1014
1015
PS /home/ahmet>

PowerShell Cmdlet

Bu makalede bazı yararlı PowerShell komutları, bir PowerShell komut listesi üzerinden PowerShell script örnekleri ile anlatılmaya çalışıldı. Bu komutlar bir otomasyon script dosyası yazarken çok kullanışlı olabilir veya bu komutların yardımıyla her zaman veri ve durum üzerinde manipülasyon yapılabilir.

PowerShell Cmdlet Nedir?

Vakit ayırdığınız için teşekkür ederiz. Cmdlet ile ilgili daha fazla bilgi için Microsoft sitesi ziyaret edilebilir. Soru ve önerilerinizi aşağıdaki formu kullanarak bize iletebilirsiniz.

Kaynak
Örnek PowerShell Komutları
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