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