Powershell - Hızlı Kılavuz

Windows PowerShell bir command-line shell ve scripting languageözellikle sistem yönetimi için tasarlanmıştır. Linux'ta analogu Bash Scripting olarak adlandırılır. .NET Framework üzerine kurulu Windows PowerShell, BT uzmanlarının Windows işletim sistemi ve Windows Server ortamında çalışan uygulamaların yönetimini kontrol etmesine ve otomatikleştirmesine yardımcı olur.

Windows PowerShell komutları cmdlets, bilgisayarları komut satırından yönetmenize izin verin. Windows PowerShell sağlayıcıları, Kayıt Defteri ve Sertifika Deposu gibi veri depolarına dosya sistemine eriştiğiniz kadar kolay erişmenizi sağlar.

Ek olarak, Windows PowerShell zengin bir ifade ayrıştırıcısına ve tam gelişmiş bir komut dosyası diline sahiptir. Yani basit bir deyişle, GUI ile yaptığınız tüm görevleri ve daha fazlasını tamamlayabilirsiniz.

PowerShell ISE

Windows PowerShell Integrated Scripting Environment(ISE), Windows PowerShell için bir ana bilgisayar uygulamasıdır. Windows PowerShell ISE'de, çok satırlı düzenleme, sekme tamamlama, sözdizimi renklendirme, seçmeli yürütme, bağlama duyarlı yardım ve sağdan sağa desteği ile tek bir Windows tabanlı grafik kullanıcı arayüzünde komutları çalıştırabilir ve komut dosyalarını yazabilir, test edebilir ve hatalarını ayıklayabilirsiniz. sol diller.

Windows PowerShell konsolunda gerçekleştireceğiniz görevlerin çoğunu gerçekleştirmek için menü öğelerini ve klavye kısayollarını kullanabilirsiniz. Örneğin, Windows PowerShell ISE'de bir komut dosyasında hata ayıkladığınızda, komut dosyasında satır kesme noktası ayarlamak için kod satırına sağ tıklayın veToggle Breakpoint.

PowerShell Temel Komutları

Pek çok PowerShell komutu var ve bu öğreticide tüm bu komutları yerleştirmek çok zor, PowerShell'in en önemli ve temel komutlarından bazılarına odaklanacağız.

İlk adım, size bir komutun ve parametresinin nasıl verileceği hakkında bir açıklama veren Get-Help komutuna gitmektir.

PowerShell Simgesi görev çubuğunda ve başlat menüsünde bulunabilir. Sadece simgeye tıklayarak açılacaktır.

Açmak için, simgeye tıklamanız yeterlidir ve ardından aşağıdaki ekran açılacaktır ve bu, PowerShell'in üzerinde çalışmaya hazır olduğunuz anlamına gelir.

PowerShell Sürümü

PowerShell'in en son sürümü 5.0'dır ve sunucumuzda neyin yüklü olduğunu kontrol etmek için aşağıdaki komutu yazıyoruz - :$PSVersionTable aşağıdaki ekran görüntüsünde gösterildiği gibi ve ekrandan PSVersion 4.0'a sahip olduğumuzu da biliyoruz.

Daha fazla Cmdlet içeren en son sürümle güncellemek için indirmemiz gerekiyor Windows Management Framework 5.0 aşağıdaki bağlantıdan - https://www.microsoft.com/en-us/download/details.aspx?id=50395 ve kurun.

PowerShell ISE

Windows PowerShell Integrated Scripting Environment(ISE), Windows PowerShell için bir ana bilgisayar uygulamasıdır. Windows PowerShell ISE'de, çok satırlı düzenleme, sekme tamamlama, sözdizimi renklendirme, seçmeli yürütme, bağlama duyarlı yardım ve sağdan sağa desteği ile tek bir Windows tabanlı grafik kullanıcı arayüzünde komutları çalıştırabilir ve komut dosyalarını yazabilir, test edebilir ve hatalarını ayıklayabilirsiniz. sol diller.

Windows PowerShell konsolunda gerçekleştireceğiniz görevlerin çoğunu gerçekleştirmek için menü öğelerini ve klavye kısayollarını kullanabilirsiniz. Örneğin, Windows PowerShell ISE'de bir komut dosyasında hata ayıkladığınızda, komut dosyasında satır kesme noktası ayarlamak için kod satırına sağ tıklayın veToggle Breakpoint.

Açmak için, aşağıdaki ekran görüntüsünde gösterildiği gibi Başlat - Ara ve ardından Yaz - PowerShell'e gidin.

Ardından Windows PowerShell ISE'ye tıklayın. Veya aşağıdaki ekran görüntüsünde gösterildiği gibi aşağı Ok'a tıklayın.

Sunucuda yüklü olan tüm uygulamaları listeleyecek ve ardından Windows PowerShell ISE'ye tıklayacaktır.

Aşağıdaki tablo açılacaktır -

Aşağıdakileri içeren üç bölümü vardır: PowerShell Console 1 numara ile, o zaman Scripting File 2 numara ve üçüncüsü Command Module modülü bulabileceğiniz yer.

Komut dosyasını oluştururken doğrudan çalıştırabilir ve aşağıdaki örnekteki gibi sonucu görebilirsiniz -

PowerShell Temel Komutları

Pek çok PowerShell komutu var ve bu öğreticide tüm bu komutları yerleştirmek çok zor, PowerShell'in en önemli ve temel komutlarından bazılarına odaklanacağız.

İlk adım, size bir komutun ve parametresinin nasıl verileceği hakkında bir açıklama veren Get-Help komutuna gitmektir.

To get the list of Updates -

  • Get-HotFix ve aşağıdaki gibi bir düzeltme yüklemek için
  • Get-HotFix -id kb2741530

Bir cmdlet veya "Komut izni", Windows PowerShell ortamında kullanılan hafif bir komuttur. Windows PowerShell çalışma zamanı, bu cmdlet'leri komut isteminde çağırır. Bunları Windows PowerShell API'leri aracılığıyla programlı olarak oluşturabilir ve başlatabilirsiniz.

Cmdlet vs Komut

Cmdlet'ler, aşağıdaki şekillerde diğer komut kabuğu ortamlarındaki komutlardan çok farklıdır -

  • Cmdlet'ler, .NET Framework sınıfı nesneleridir; ve sadece bağımsız çalıştırılabilir dosyalar değil.

  • Cmdlet'ler, bir düzine satırlık koddan kolayca oluşturulabilir.

  • Ayrıştırma, hata sunumu ve çıktı biçimlendirme cmdlet'ler tarafından işlenmez. Windows PowerShell çalışma zamanı tarafından yapılır.

  • Cmdlets işlemi metin akışı üzerinde olmayan nesneler üzerinde çalışır ve nesneler ardışık düzen için çıktı olarak iletilebilir.

  • Cmdlet'ler, bir seferde tek bir nesneyi işledikleri için kayıt tabanlıdır.

Yardım almak

İlk adım, size bir komutun ve parametresinin nasıl verileceği hakkında bir açıklama veren Get-Help komutuna gitmektir.

Aşağıda, Dosyalar ve Klasörlerdeki powershell komut dosyalarının örnekleri verilmiştir.

Sr.No. Operasyon Açıklaması
1 Klasör Oluşturma

PowerShell betikleri kullanılarak klasörlerin nasıl oluşturulacağını gösteren Örnek Komut Dosyası.

2 Dosya Oluşturma

PowerShell betikleri kullanılarak nasıl dosya oluşturulacağını gösteren Örnek Komut Dosyası.

3 Klasörleri Kopyalama

PowerShell betikleri kullanılarak dosyaların nasıl kopyalanacağını gösteren Örnek Komut Dosyası.

4 Dosyalar kopyalanıyor

PowerShell betikleri kullanılarak nasıl dosya oluşturulacağını gösteren Örnek Komut Dosyası.

5 Klasörleri Silme

PowerShell betikleri kullanılarak klasörlerin nasıl silineceğini gösteren Örnek Komut Dosyası.

6 Dosyaları Silme

PowerShell betikleri kullanılarak dosyaların nasıl silineceğini gösteren Örnek Komut Dosyası.

7 Klasörleri Taşıma

PowerShell betikleri kullanılarak klasörlerin nasıl taşınacağını gösteren Örnek Komut Dosyası.

8 Dosyaları Taşıma

PowerShell betikleri kullanılarak dosyaların nasıl taşınacağını gösteren Örnek Komut Dosyası.

9 Klasörleri Yeniden Adlandırın

PowerShell betikleri kullanılarak klasörlerin nasıl yeniden adlandırılacağını gösteren Örnek Komut Dosyası.

10 Dosyaları Yeniden Adlandırın

PowerShell betikleri kullanılarak dosyaların nasıl yeniden adlandırılacağını gösteren Örnek Komut Dosyası.

11 Öğe Alınıyor

PowerShell betikleri kullanılarak öğelerin nasıl alınacağını gösteren Örnek Komut Dosyası.

12 Klasör Varlığını Kontrol Edin

PowerShell komut dosyalarını kullanarak klasör varlığının nasıl kontrol edileceğini gösteren Örnek Komut Dosyası.

13 Dosya Varlığını Kontrol Edin

PowerShell komut dosyalarını kullanarak dosya varlığının nasıl kontrol edileceğini gösteren Örnek Komut Dosyası.

Aşağıda, Sistem Tarih ve Saatindeki powershell komut dosyalarının örnekleri verilmiştir.

Sr.No. Operasyon Açıklaması
1 Sistem Tarihini Alın

PowerShell komut dosyalarını kullanarak sistem tarihinin nasıl alınacağını gösteren Örnek Komut Dosyası.

2 Sistem Tarihini Ayarla

PowerShell betikleri kullanılarak sistem tarihinin nasıl ayarlanacağını gösteren Örnek Komut Dosyası.

3 Sistem Zamanını Alın

PowerShell komut dosyalarını kullanarak sistem zamanının nasıl alınacağını gösteren Örnek Komut Dosyası.

4 Sistem Saatini Ayarlayın

PowerShell komut dosyalarını kullanarak sistem saatinin nasıl ayarlanacağını gösteren Örnek Komut Dosyası.

Aşağıda, farklı dosya türlerinin oluşturulması ve okunması için powershell betikleri örnekleri verilmiştir.

Sr.No. Operasyon Açıklaması
1 Metin Dosyası Oluştur

PowerShell komut dosyalarını kullanarak bir metin dosyasının nasıl oluşturulacağını gösteren Örnek Komut Dosyası.

2 Metin Dosyasını Oku

PowerShell komut dosyalarını kullanarak bir metin dosyasının nasıl okunacağını gösteren Örnek Komut Dosyası.

3 XML Dosyası Oluştur

PowerShell komut dosyalarını kullanarak bir XML dosyasının nasıl oluşturulacağını gösteren Örnek Komut Dosyası.

4 XML Dosyasını Oku

PowerShell betikleri kullanılarak bir XML dosyasının nasıl okunacağını gösteren Örnek Komut Dosyası.

5 CSV Dosyası Oluşturun

PowerShell komut dosyalarını kullanarak bir CSV dosyasının nasıl oluşturulacağını gösteren Örnek Komut Dosyası.

6 CSV Dosyasını Oku

PowerShell komut dosyalarını kullanarak bir CSV dosyasının nasıl okunacağını gösteren Örnek Komut Dosyası.

7 HTML Dosyası Oluştur

PowerShell komut dosyalarını kullanarak bir HTML dosyasının nasıl oluşturulacağını gösteren Örnek Komut Dosyası.

8 HTML Dosyasını Oku

PowerShell komut dosyalarını kullanarak bir HTML dosyasının nasıl okunacağını gösteren Örnek Komut Dosyası.

9 Dosya içeriğini silme

PowerShell betikleri kullanılarak dosya içeriklerinin nasıl silineceğini gösteren Örnek Komut Dosyası.

10 Metin Verilerini Ekle

PowerShell komut dosyalarını kullanarak dosya içeriğine nasıl metin ekleneceğini gösteren Örnek Komut Dosyası.

Cmdlet'ler

Bir cmdlet veya "Komut izni", Windows PowerShell ortamında kullanılan hafif bir komuttur. Windows PowerShell çalışma zamanı, bu cmdlet'leri komut isteminde çağırır. Bunları Windows PowerShell API'leri aracılığıyla programlı olarak oluşturabilir ve başlatabilirsiniz. Aşağıda cmdlet'lerin gelişmiş kullanım örnekleri verilmiştir.

Sr.No. Cmdlet Tipi & Açıklama
1 Eşsiz Cmdlet

Get-Unique Cmdlet'i sergilemek için örnek program.

2

Group-Object Cmdlet

Grup-Nesne Cmdlet'ini sergilemek için örnek program.

3 Ölçü-Nesne Cmdlet

Measure-Object Cmdlet'i sergilemek için örnek program.

4 Karşılaştır Nesne Cmdlet

Compare-Object Cmdlet'i sergilemek için örnek program.

5 Biçim Listesi Cmdlet

Format-List Cmdlet'i sergilemek için örnek program.

6 Biçim Geniş Cmdlet

Format-Wide Cmdlet'i sergilemek için örnek program.

7 Where-Object Cmdlet

Where-Object Cmdlet'i sergilemek için örnek program.

8 Get-ChildItem Cmdlet

Get-ChildItem Cmdlet'i sergilemek için örnek program.

9 ForEach-Object Cmdlet

ForEach-Object Cmdlet'i sergilemek için örnek program.

10 Başlat-Uyku Cmdlet

Start-Sleep Cmdlet'i sergilemek için örnek program.

11 Okuma-Barındırma Cmdlet'i

Read-Host Cmdlet'i sergilemek için örnek program.

12 Nesne Seçimi Cmdlet

Select-Object Cmdlet'i sergilemek için örnek program.

13 Sort-Object Cmdlet

Sort-Object Cmdlet'i sergilemek için örnek program.

14 Yazma Uyarısı Cmdlet

Write-Warning Cmdlet'i sergilemek için örnek program.

15 Yazma Ana Bilgisayar Cmdlet'i

Write-Host Cmdlet'i sergilemek için örnek program.

16 Invoke-Item Cmdlet

Invoke-Item Cmdlet'i sergilemek için örnek program.

17 Invoke-Expression Cmdlet

Invoke-Expression Cmdlet'i sergilemek için örnek program.

18 Ölçü Komut Cmdlet

Measure-Command Cmdlet'i sergilemek için örnek program.

19 Invoke-History Cmdlet

Invoke-History Cmdlet'i sergilemek için örnek program.

20 Eklenti Geçmişi Cmdlet

Eklenti Geçmişi Cmdlet'ini sergilemek için örnek program.

21 Get-History Cmdlet

Get-History Cmdlet'i sergilemek için örnek program.

22 Get-Culture Cmdlet

Get-Culture Cmdlet'i sergilemek için örnek program.

Windows PowerShell bir command-line shell ve scripting languageözellikle sistem yönetimi için tasarlanmıştır. Linux'taki analogu Bash Scripting olarak adlandırılır. .NET Framework üzerine kurulu Windows PowerShell, BT uzmanlarının Windows işletim sistemi ve Windows Server ortamında çalışan uygulamaların yönetimini kontrol etmesine ve otomatikleştirmesine yardımcı olur.

Windows PowerShell komutları cmdlets, bilgisayarları komut satırından yönetmenize izin verin. Windows PowerShell sağlayıcıları, Kayıt Defteri ve Sertifika Deposu gibi veri depolarına dosya sistemine eriştiğiniz kadar kolay erişmenizi sağlar.

Ek olarak, Windows PowerShell zengin bir ifade ayrıştırıcısına ve tam gelişmiş bir komut dosyası diline sahiptir. Yani basit bir deyişle, GUI ile yaptığınız tüm görevleri ve daha fazlasını tamamlayabilirsiniz. Windows PowerShell Komut Dosyası, tam gelişmiş bir komut dosyası dilidir ve zengin bir ifade ayrıştırıcısına sahiptir.

Özellikleri

  • Cmdlets - Cmdlet'ler, örneğin kayıt defterini, hizmetleri, işlemleri, olay günlüklerini yönetmek ve Windows Yönetim Araçları'nı (WMI) kullanmak gibi genel sistem yönetimi görevlerini gerçekleştirir.

  • Task oriented - PowerShell komut dosyası dili görev tabanlıdır ve mevcut komut dosyaları ve komut satırı araçları için destek sağlar.

  • Consistent design- cmdlet'ler ve sistem veri depoları ortak sözdizimi kullandığından ve ortak adlandırma kurallarına sahip olduğundan, veri paylaşımı kolaydır. Bir cmdlet'in çıktısı, herhangi bir işlem yapmadan başka bir cmdlet'e ardışık düzenlenebilir.

  • Simple to Use - Basitleştirilmiş, komut tabanlı gezinme, kullanıcıların dosya sistemi gezinmesine benzer şekilde kayıt defterinde ve diğer veri depolarında gezinmesine olanak tanır.

  • Object based- PowerShell, güçlü nesne işleme yeteneklerine sahiptir. Nesneler doğrudan diğer araçlara veya veritabanlarına gönderilebilir.

  • Extensible interface. - PowerShell, bağımsız yazılım satıcıları olarak özelleştirilebilir ve kurumsal geliştiriciler, yazılımlarını yönetmek için PowerShell'i kullanarak özel araçlar ve yardımcı programlar oluşturabilir.

Değişkenler

PowerShell değişkenleri, nesneler olarak adlandırılır. PowerShell nesnelerle çalıştığı için bu değişkenler nesnelerle çalışmak için kullanılır.

Değişken oluşturma

Değişken adı $ ile başlamalıdır ve adlarında alfanümerik karakterler ve alt çizgi içerebilir. Geçerli bir değişken adı yazılarak bir değişken oluşturulabilir.

PowerShell ISE Konsolu'na aşağıdaki komutu yazın. D: \ test klasöründe olduğunuzu varsayarsak.

$location = Get-Location

Burada değişken bir $ location oluşturduk ve ona Get-Location cmdlet'inin çıktısını atadık. Şimdi geçerli konumu içerir.

Değişken kullanma

PowerShell ISE Konsolu'na aşağıdaki komutu yazın.

$location

Çıktı

PowerShell konsolunda aşağıdaki çıktıyı görebilirsiniz.

Path                                                                                    
----                                                                                    
D:\test

Değişken hakkında bilgi almak

Get-Member cmdlet'i kullanılan değişkenin türünü söyleyebilir. Aşağıdaki örneğe bakın.

$location | Get-Member

Çıktı

PowerShell konsolunda aşağıdaki çıktıyı görebilirsiniz.

TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}

PowerShell Özel değişkenleri, PowerShell hakkındaki bilgileri depolar. Bunlara otomatik değişkenler de denir. Otomatik değişkenlerin listesi aşağıdadır -

Şebeke Açıklama
$$ Oturum tarafından alınan son satırdaki son belirteci temsil eder.
$? Son işlemin yürütme durumunu temsil eder. Son işlem başarılı olursa DOĞRU, başarısız olursa YANLIŞ içerir.
$ ^ Oturum tarafından alınan son satırdaki ilk belirteci temsil eder.
$ _ $ PSItem ile aynı. İşlem hattı nesnesindeki mevcut nesneyi içerir. Bu değişkeni, bir ardışık düzen içindeki her nesne veya seçilen nesneler üzerinde bir eylem gerçekleştiren komutlarda kullanabilirsiniz.
ARGS Bir işleve, komut dosyasına veya komut dosyası bloğuna iletilen bildirilmemiş parametrelerden ve / veya parametre değerlerinden oluşan bir diziyi temsil eder.
$ CONSOLEFILENAME Oturumda en son kullanılan konsol dosyasının (.psc1) yolunu temsil eder.
$ ERROR En son hataları temsil eden bir dizi hata nesnesini temsil eder.
$ ETKİNLİK İşlenmekte olan olayı temsil eden bir PSEventArgs nesnesini temsil eder.
$ EVENTARGS İşlenmekte olan olayın EventArgs'ından türetilen ilk olay bağımsız değişkenini temsil eden bir nesneyi temsil eder.
$ EVENTSUBSCRIBER İşlenmekte olan olayın olay abonesini temsil eden bir PSEventSubscriber nesnesini temsil eder.
$ EXECUTIONCONTEXT PowerShell ana bilgisayarının yürütme bağlamını temsil eden bir EngineIntrinsics nesnesini temsil eder.
$ FALSE YANLIŞ'ı temsil eder. Bu değişkeni, "false" dizesini kullanmak yerine komutlarda ve betiklerde FALSE'u temsil etmek için kullanabilirsiniz.
$ FOREACH Bir ForEach döngüsünün numaralandırıcısını (elde edilen değerleri değil) temsil eder. $ ForEach değişkeninin değeri üzerinde numaralandırıcıların özelliklerini ve yöntemlerini kullanabilirsiniz.
$ HOME Kullanıcının ana dizininin tam yolunu temsil eder.
$ HOST PowerShell için geçerli ana bilgisayar uygulamasını temsil eden bir nesneyi temsil eder.
$ INPUT Bir işleve iletilen tüm girdileri numaralandıran bir numaralandırıcıyı temsil eder.
$ LASTEXITCODE Çalıştırılan son Windows tabanlı programın çıkış kodunu temsil eder.
$ MAÇLAR $ Matches değişkeni -match ve -notmatch operatörleriyle çalışır.
$ DAVETİYİM $ MyInvocation yalnızca komut dosyaları, işlev ve komut dosyası blokları için doldurulur. $ MyInvocation otomatik değişkeninin PSScriptRoot ve PSCommandPath özellikleri, geçerli komut dosyası değil, çağıran veya çağıran komut dosyası hakkında bilgi içerir.
$ NESTEDPROMPTLEVEL Mevcut bilgi istemi seviyesini temsil eder.
$ NULL $ null, NULL veya boş değer içeren otomatik bir değişkendir. Bu değişkeni komutlarda ve komut dosyalarında eksik veya tanımlanmamış bir değeri temsil etmek için kullanabilirsiniz.
$ PID Geçerli PowerShell oturumunu barındıran işlemin işlem tanımlayıcısını (PID) temsil eder.
$ PROFİL Geçerli kullanıcı ve geçerli ana bilgisayar uygulaması için PowerShell profilinin tam yolunu temsil eder.
$ PSCMDLET Çalıştırılan cmdlet'i veya gelişmiş işlevi temsil eden bir nesneyi temsil eder.
$ PSCOMMANDPATH Çalıştırılan komut dosyasının tam yolunu ve dosya adını temsil eder.
$ PSCULTURE İşletim sisteminde şu anda kullanımda olan kültürün adını temsil eder.
$ PSDEBUGCONTEXT Hata ayıklama sırasında bu değişken, hata ayıklama ortamı hakkında bilgi içerir. Aksi takdirde, NULL değeri içerir.
$ PSHOME PowerShell için kurulum dizininin tam yolunu temsil eder.
$ PSITEM $ _ İle aynı. İşlem hattı nesnesindeki mevcut nesneyi içerir.
$ PSSCRIPTROOT Bir komut dosyasının çalıştırıldığı dizini temsil eder.
$ PSSENDERINFO Kullanıcı kimliği ve kaynak bilgisayarın saat dilimi dahil olmak üzere PSSession'ı başlatan kullanıcı hakkındaki bilgileri temsil eder.
$ PSUICULTURE Şu anda işletim sisteminde kullanımda olan kullanıcı arabirimi (UI) kültürünün adını temsil eder.
$ PSVERSIONTABLE Geçerli oturumda çalışan PowerShell sürümüyle ilgili ayrıntıları görüntüleyen salt okunur bir karma tablosunu temsil eder.
$ SENDER Bu olayı oluşturan nesneyi temsil eder.
$ KABUK Mevcut kabuğun tanımlayıcısını temsil eder.
$ STACKTRACE En son hata için yığın izlemeyi temsil eder.
$ BU Bir betik özelliğini veya betik yöntemini tanımlayan bir betik bloğunda, $ This değişkeni genişletilmekte olan nesneyi ifade eder.
DOĞRU DOĞRU temsil eder. Bu değişkeni komutlarda ve betiklerde DOĞRU temsil etmek için kullanabilirsiniz.

PowerShell, değişkenleri işlemek için zengin bir işleç kümesi sağlar. Tüm PowerShell operatörlerini aşağıdaki gruplara ayırabiliriz -

  • Aritmetik operatörler
  • Atama Operatörleri
  • Karşılaştırma Operatörleri
  • Mantıksal operatörler
  • Yönlendirme Operatörleri
  • Dökülen ve Operatörlere Katılma
  • Tip Operatörleri
  • Tekli Operatörler

Aritmetik Operatörler

Aritmetik operatörler, matematiksel ifadelerde, cebirde kullanıldığı gibi kullanılır. Aşağıdaki tablo aritmetik operatörleri listeler -

Tamsayı değişken A'nın 10, B değişkeninin 20, o zaman -

Örnekleri Göster

Şebeke Açıklama Misal
+ (Toplama) İşlecin her iki tarafına da değerler ekler. A + B 30 verecek
- (Çıkarma) Sağ el işleneni sol el işlenenden çıkarır. A - B -10 verecek
* (Çarpma işlemi) İşlecin her iki tarafındaki değerleri çarpar. A * B 200 verecek
/ (Bölünme) Sol el işleneni sağ el işlenene göre böler. B / A 2 verecek
% (Modül) Sol el işleneni sağ el işlenene böler ve kalanını döndürür. B% A 0 verir

Karşılaştırma Operatörleri

Aşağıda, PowerShell dili tarafından desteklenen atama işleçleri verilmiştir -

Tamsayı değişken A'nın 10, B değişkeninin 20, o zaman -

Örnekleri Göster

Şebeke Açıklama Misal
eq (eşittir) İki değeri eşit olacak şekilde karşılaştırır. A -eq B yanlış verir
ne (eşit değil) Eşit olmayacak şekilde iki değeri karşılaştırır. A -ne B doğru verecek
gt (büyüktür) İlk değeri ikinci değerden büyük olacak şekilde karşılaştırır. B -gt A doğru verecektir
ge (büyüktür veya eşittir) İlk değeri ikinci değere eşit veya ondan büyük olarak karşılaştırır. B -ge A gerçek verecek
lt (daha az) İlk değeri ikinci değerden küçük olacak şekilde karşılaştırır. B -lt A yanlış verir
le (küçüktür veya eşittir) İlk değeri ikinci değerden küçük veya ona eşit olacak şekilde karşılaştırır. B -le A yanlış verir

Atama Operatörleri

Aşağıda, PowerShell dili tarafından desteklenen atama işleçleri verilmiştir -

Örnekleri Göster

Şebeke Açıklama Misal
= Basit atama operatörü. Sağ taraftaki işlenenlerden sol taraf işlenene değer atar. C = A + B, A + B'nin değerini C'ye atar
+ = AND atama operatörü ekleyin. Sol operanda sağ operandı ekler ve sonucu sol operanda atar. C + = A, C = C + A'ya eşdeğerdir
- = Çıkarma VE atama operatörü. Sağ operandı sol operanddan çıkarır ve sonucu sol operanda atar. C - = A, C = C - A'ya eşdeğerdir

Mantıksal Operatörler

Aşağıdaki tablo mantıksal operatörleri listeler -

Boolean değişkenleri A'nın doğru ve B değişkeninin yanlış olduğunu varsayalım, o zaman -

Örnekleri Göster

Şebeke Açıklama Misal
AND (mantıksal ve) Mantıksal AND operatörü çağrıldı. Her iki işlenen de sıfır değilse, koşul doğru olur. (A -VE B) yanlıştır
VEYA (mantıksal veya) Mantıksal VEYA Operatörü çağrıldı. İki işlenenden herhangi biri sıfır değilse, koşul doğru olur. (A -VEYA B) doğru
DEĞİL (mantıksal değil) Mantıksal NOT Operatörü olarak adlandırıldı. İşleneninin mantıksal durumunu tersine çevirmek için kullanın. Bir koşul doğruysa, Mantıksal NOT operatörü yanlış yapar. -NOT (A -VE B) doğru

Çeşitli Operatörler

Aşağıda, PowerShell dili tarafından desteklenen çeşitli önemli operatörler verilmiştir -

Örnekleri Göster

Şebeke Açıklama Misal
> (Yönlendirme Operatörü) Yönlendirme operatörü. Yeniden yönlendirilen dosya / çıktı cihazına yazdırılacak çıktıyı atar. dir> test.log, test.log dosyasındaki dizin listesini yazdıracaktır

Bir kod bloğunu birkaç kez çalıştırmanız gereken bir durum olabilir. Genel olarak ifadeler sıralı olarak yürütülür: Bir fonksiyondaki ilk ifade önce çalıştırılır, ardından ikincisi yapılır ve bu böyle devam eder.

Programlama dilleri, daha karmaşık yürütme yollarına izin veren çeşitli kontrol yapıları sağlar.

Bir loop ifadesi, bir ifadeyi veya bir grup ifadeyi birden çok kez yürütmemize izin verir ve aşağıdakiler, programlama dillerinin çoğunda bir döngü ifadesinin genel biçimidir -

PowerShell programlama dili, döngü gereksinimlerini işlemek için aşağıdaki döngü türlerini sağlar. Ayrıntılarını kontrol etmek için aşağıdaki bağlantıları tıklayın.

Sr.No. Döngü ve Açıklama
1 döngü için

Bir dizi ifadeyi birden çok kez çalıştırın ve döngü değişkenini yöneten kodu kısaltın.

2 forEach döngü

Döngü için geliştirildi. Bu, esas olarak diziler de dahil olmak üzere öğelerin koleksiyonunda gezinmek için kullanılır.

3 döngü sırasında

Belirli bir koşul doğruyken bir ifadeyi veya ifade grubunu tekrarlar. Döngü gövdesini çalıştırmadan önce koşulu test eder.

4 döngü sırasında yap

Döngü gövdesinin sonundaki koşulu test etmesi dışında bir while ifadesi gibi.

Karar verme yapıları, program tarafından değerlendirilecek veya test edilecek bir veya daha fazla koşula, koşulun doğru olduğu belirlenirse yürütülecek bir ifade veya ifadeye ve isteğe bağlı olarak koşul belirlenirse yürütülecek diğer ifadelere sahiptir. yanlış olmak.

Aşağıda, programlama dillerinin çoğunda bulunan tipik bir karar verme yapısının genel biçimi verilmiştir -

PowerShell betik dili, aşağıdaki türden karar verme ifadeleri sağlar. Ayrıntılarını kontrol etmek için aşağıdaki bağlantıları tıklayın.

Sr.No. Açıklama ve Açıklama
1 eğer ifadesi

Bir if statement bir boole ifadesinin ardından bir veya daha fazla ifadeden oluşur.

2 if ... else ifadesi

Bir if statement ardından isteğe bağlı bir else statement, boolean ifadesi yanlış olduğunda çalıştırılır.

3 yuvalanmış if ifadesi

Birini kullanabilirsin if veya elseif bir başkasının içinde ifade if veya elseif beyan (lar).

4 anahtar deyimi

Bir switch ifadesi, bir değişkenin bir değerler listesine karşı eşitlik açısından test edilmesine izin verir.

PowerShell bir veri yapısı sağlar, array, herhangi bir türden sabit boyutlu sıralı bir öğe koleksiyonunu depolayan. Bir dizi, bir veri koleksiyonunu depolamak için kullanılır, ancak bir diziyi bir değişkenler veya nesneler koleksiyonu olarak düşünmek genellikle daha kullanışlıdır.

Sayı0, sayı1, ... ve sayı99 gibi tek tek değişkenleri bildirmek yerine, sayılar gibi bir dizi değişkeni bildirir ve temsil etmek için sayılar [0], sayılar [1] ve ..., sayılar [99] kullanırsınız bireysel değişkenler.

Bu öğretici, dizi değişkenlerinin nasıl bildirileceğini, dizilerin nasıl oluşturulacağını ve dizinli değişkenler kullanılarak dizilerin nasıl işleneceğini açıklamaktadır.

Dizi Değişkenlerini Bildirme

Bir programda bir dizi kullanmak için, diziye başvurmak üzere bir değişken bildirmeniz gerekir ve değişkenin başvurabileceği dizi türünü belirtebilirsiniz. İşte bir dizi değişkenini bildirmek için sözdizimi -

Sözdizimi

$A = 1, 2, 3, 4
or
$A = 1..4

Note- Varsayılan olarak dizi nesnesi türü System.Object'dir. GetType () yöntemi, dizinin türünü döndürür. Tip geçilebilir.

Misal

Aşağıdaki kod parçacıkları bu sözdiziminin örnekleridir -

[int32[]]$intA = 1500,2230,3350,4000

$A = 1, 2, 3, 4
$A.getType()

Bu, aşağıdaki sonucu verecektir -

Çıktı

IsPublic    IsSerial    Name                        BaseType                     
--------    --------    ----                        --------                     
True        True        Object[]                    System.Array

Dizi elemanlarına, index. Dizi endeksleri 0 tabanlıdır; yani, 0'dan başlarlararrayRefVar.length-1.

Misal

Aşağıdaki ifade, bir dizi değişkeni bildirir, myList, 10 öğelik çift tipli bir dizi oluşturur ve referansını myList'e atar -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

Aşağıdaki resim myList dizisini temsil eder. Burada myList on çift değer içerir ve endeksler 0'dan 9'a kadardır.

Dizileri İşleme

Dizi öğelerini işlerken genellikle ikisinden birini kullanırız for döngü veya foreach döngü çünkü bir dizideki tüm öğeler aynı türdedir ve dizinin boyutu bilinir.

Misal

İşte dizilerin nasıl oluşturulacağını, başlatılacağını ve işleneceğini gösteren eksiksiz bir örnek:

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

write-host("Print all the array elements")
$myList

write-host("Get the length of array")
$myList.Length

write-host("Get Second element of array")
$myList[1]

write-host("Get partial array")
$subList = $myList[1..3]

write-host("print subList")
$subList

write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
   $myList[$i]
}

write-host("using forEach Loop")
foreach ($element in $myList) {
   $element
}

write-host("using while Loop")
$i = 0
while($i -lt 4) {
   $myList[$i];
   $i++
}

write-host("Assign values")
$myList[1] = 10
$myList

Bu, aşağıdaki sonucu verecektir -

Çıktı

Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123

Diziler Yöntem Örnekleri

Yöntemlerini kullanarak diziler üzerindeki işlemleri gösteren eksiksiz bir örnek.

$myList = @(0..4)

write-host("Print array")
$myList

$myList = @(0..4)

write-host("Assign values")
$myList[1]  = 10
$myList

Bu, aşağıdaki sonucu verecektir -

Çıktı

Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4

Hashtable, anahtar / değer çiftlerini bir hash tablosunda depolar. Bir Hashtable kullanırken, anahtar olarak kullanılan bir nesneyi ve bu anahtara bağlanmak istediğiniz değeri belirtirsiniz. Genellikle anahtar olarak String veya sayılar kullandık.

Bu öğretici, hashtable değişkenlerinin nasıl bildirileceğini, hashtable'ların nasıl oluşturulacağını ve yöntemlerini kullanarak hashtable'ın nasıl işleneceğini açıklamaktadır.

Hashtable Değişkenlerini Bildirme

Bir programda bir hashtable kullanmak için, hashtable'a başvurmak için bir değişken bildirmelisiniz. İşte bir hashtable değişkeni bildirmek için sözdizimi -

Sözdizimi

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}

Note- Sıralı sözlükler benzer sözdizimi kullanılarak oluşturulabilir. Sıralı sözlükler, girişlerin eklendiği sırayı korurken, hashtable'lar bunu yapmaz.

Misal

Aşağıdaki kod parçacıkları bu sözdiziminin örnekleridir -

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

Hashtable'ı yazdırın.

$hash

Çıktı

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square

Hashtable değerlerine, keys.

> $hash["ID"]
 1

Hashtable işleniyor

Hashtable anahtarlarına veya değerlerine erişmek için nokta gösterimi kullanılabilir.

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

Misal

İşte hashtable'ın nasıl oluşturulacağını, başlatılacağını ve işleneceğini gösteren eksiksiz bir örnek:

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

Bu, aşağıdaki sonucu verecektir -

Çıktı

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square

Normal ifade, bir modelde tutulan özel bir sözdizimini kullanarak diğer dizeleri veya dize kümelerini eşleştirmenize veya bulmanıza yardımcı olan özel bir karakter dizisidir. Metin ve verileri aramak, düzenlemek veya değiştirmek için kullanılabilirler.

İşte PowerShell'de bulunan tüm normal ifade meta karakter sözdizimini listeleyen tablo -

Alt ifade Maçlar
^ Satırın başıyla eşleşir.
$ Satırın sonuyla eşleşir.
. Yeni satır hariç herhangi bir tek karakterle eşleşir. Kullanmam seçeneği, yeni satırla eşleşmesine de izin verir.
[...] Parantez içindeki herhangi bir tek karakterle eşleşir.
[^ ...] Parantez içinde olmayan herhangi bir karakterle eşleşir.
\ A Tüm dizenin başlangıcı.
\ z Tüm dizenin sonu.
\ Z İzin verilen son satır sonlandırıcı dışında tüm dizenin sonu.
yeniden* Önceki ifadenin 0 veya daha fazla oluşumuyla eşleşir.
yeniden + Önceki şeyden 1 veya daha fazlasıyla eşleşir.
yeniden? Önceki ifadenin 0 veya 1 oluşumuyla eşleşir.
yeniden {n} Önceki ifadenin tam olarak n sayıda oluşumuyla eşleşir.
re {n,} Önceki ifadenin n veya daha fazla oluşumuyla eşleşir.
re {n, m} Önceki ifadenin en az n ve en çok m oluşumuyla eşleşir.
a | b A veya b ile eşleşir.
(yeniden) Normal ifadeleri gruplandırır ve eşleşen metni hatırlar.
(?: yeniden) Normal ifadeleri eşleşen metni hatırlamadan gruplar.
(?> yeniden) Geriye dönmeden bağımsız modelle eşleşir.
\ w Kelime karakterleriyle eşleşir.
\ W Sözcük olmayan karakterlerle eşleşir.
\ s Beyaz boşlukla eşleşir. [\ T \ n \ r \ f] ile eşdeğerdir.
\ S Beyaz olmayan boşlukla eşleşir.
\ d Rakamlarla eşleşir. [0-9] ile eşdeğerdir.
\ D Sayı olmayanlarla eşleşir.
\ A Dizenin başlangıcıyla eşleşir.
\ Z Dizenin sonuyla eşleşir. Bir satırsonu varsa, yeni satırdan hemen önce eşleşir.
\ z Dizenin sonuyla eşleşir.
\ G Son maçın bittiği noktayla eşleşir.
\ n Grup numarası "n" için geriye dönük referans.
\ b Köşeli parantezlerin dışındayken kelime sınırlarıyla eşleşir. Köşeli parantezlerin içindeyken geri boşlukla (0x08) eşleşir.
\ B Sözcük olmayan sınırlarla eşleşir.
\ n, \ t vb. Yeni satırlarla, satır başlarıyla, sekmelerle vb. Eşleşir.
\ Q \ E'ye kadar tüm karakterlerden kaçın (tırnak işareti).
\ E \ Q ile başlayan alıntı biter.

PowerShell'de regex'in nasıl kullanılacağını gösteren eksiksiz bir örnek;

Sr.No. Maç ve Açıklama
1 Karakterleri Eşleştir

Desteklenen normal ifade karakterleri örneği.

2 Karakter Sınıflarını Eşleştirme

Desteklenen karakter sınıfları örneği.

3 Maç Nicelik Belirleyicileri

Desteklenen nicelik belirteçlerine örnek.

Backtick (`) operatörü ayrıca kelime kaydırma operatörü olarak da adlandırılır. Bir komutun birden çok satırda yazılmasına izin verir. Cümlelerde yeni satır ("n) veya tab (" t) için de kullanılabilir. Aşağıdaki örneklere bakın -

örnek 1

Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize

Olacak

Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize

Çıkışı şu şekilde doğrulayın:

Name                                                   ServiceType  Status
----                                                   -----------  ------
MSSQLServerADHelper100                             Win32OwnProcess Stopped
ntrtscan                                           Win32OwnProcess Running
...

Örnek 2

Yeni satır ve sekme kullanımı.

> Write-host "Title Subtitle"
Title Subtitle

> Write-host "Title `nSubtitle"
Title 
Subtitle

> Write-host "Title `tSubtitle"
Title   Subtitle

Powershell, üç tür braketi destekler.

  • Parenthesis brackets. − ()

  • Braces brackets. − {}

  • Square brackets. − []

Parantez parantezleri

Bu tür parantezler,

  • argümanlar geçmek

  • birden fazla talimat setini içine alın

  • belirsizliği çözmek

  • dizi oluştur

Misal

> $array = @("item1", "item2", "item3")
 
> foreach ($element in $array) { $element }
item1
item2
item3

Parantezler

Bu tür parantezler,

  • ifadeleri dahil et

  • blok komutları

Misal

$x = 10

if($x -le 20){
   write-host("This is if statement")
}

Bu, aşağıdaki sonucu verecektir -

Çıktı

This is if statement.

Köşeli parantez

Bu tür parantezler,

  • diziye erişim

  • hashtable'lara erişim

  • normal ifade kullanarak filtrele

Misal

> $array = @("item1", "item2", "item3")
 
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
 
>Get-Process [r-s]*
 Handles    NPM(K)     PM(K)    WS(K)   VM(M)   CPU(s)     Id    ProcessName
-------    ------     -----     -----   -----   ------     --    -----------  
    320        72     27300     33764    227     3.95    4028    SCNotification 
   2298        77     57792     48712    308             2884    SearchIndexer
   ...

PowerShell diğer adı, cmdlet veya herhangi bir komut öğesi için başka bir addır.

Takma Ad Oluşturma

Kullanım New-Aliasbir takma ad oluşturmak için cmdlet. Aşağıdaki örnekte, Get-Help cmdlet'i için bir takma ad yardımı oluşturduk.

New-Alias -Name help -Value Get-Help

Şimdi takma adı çağırın.

help Get-WmiObject -Detailed

Aşağıdaki çıktıyı göreceksiniz.

NAME
   Get-WmiObject
    
SYNOPSIS
   Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.    
    
SYNTAX
   Get-WmiObject [
...

Takma Ad Alma

Kullanım get-alias cmdlet ile şu anki powershell oturumundaki tüm takma adları alın.

Get-Alias

Aşağıdaki çıktıyı göreceksiniz.

CommandType     Name                     Definition
-----------     ----                     ----------  
Alias           %                        ForEach-Object
Alias           ?                        Where-Object
Alias           ac                       Add-Content
Alias           asnp                     Add-PSSnapIn 
...
Yazdır