PowerShell Dize İşlevleri | PowerShell Dize İşlevlerinin Yöntemleri


PowerShell Dize İşlevlerine Giriş

PowerShell Parametreleri dizeler alabilir ve farklı yönlerden elde edilen makalelerin özellikleri olarak birçok kez dizeler bulunur. Gerçeği söylemek gerekirse PowerShell'deki her şeye dize olarak bir rol verilebilir. Fırlatarak, her şeyi (tam sayılar, nesneler vb.) bir dizgeye dönüştürebileceğimizi ima ediyorum, her ne kadar dize dönüşümünden önceki gibi görünmese de.

PowerShell Dizeleri İşlevleriyle Çalışma

Tartışacağım temel şey dizelerle çalışmak. Bu, iki yönlü ifadeler ile tekil ifadeler arasındaki düzenlemeyi ve karşıtlıkları içerir (gerçekte bu ikisi arasında büyük bir ayrım vardır).

Bir dizeyi düşündüğümde, bir içerik paketini şu şekilde düşünüyorum:

Temelde iki yönlü (veya tekli) ifadelerle bir şeyler üzerinde çalışıyorum ve bu rahatlıkta ortaya çıkıyor. Şu anda burada iki katlı ifadeler kullandım, bu iyi, ancak iki katlı ifadeler kullanmak, bir değişkeni gerçekten değerlendirebileceğim ve onu dizemde gösterebileceğim anlamına geliyor. Böylece alternatif türde bir mesaja sahip olmak için böyle bir şey başarabilirim.

$MyName = "Priyanka Pillai"
"Hello $($MyName), today is $((Get-Date).DayOfWeek)"

Şu anda değişkenimi (veya sıramı) aldım ve onu değerlendirip içeriğimin içinde bir dize olarak göstereceğim. Gerektiğinde kendi hatalarınızı göstermenin yanı sıra bazı ayrıntılı mesajları göstermeniz veya sorun giderme mesajları göndermeniz gerektiğinde bu çok önemlidir.

Aynı şekilde bunların her birini nasıl bir $() içine aldığıma da dikkat edin. Bu, değişkeni veya sırayı uygun şekilde değerlendirmemi garanti eder.

İkili ifadelere değindim ve bir model verdim ama tekil ifadeler için de bir şeyler söylenmesi gerekmez mi? Genellikle, içerikteki herhangi bir faktörü veya yönü değerlendirmeyi ummadan yalnızca içerik göstermeyi beklediğinizde bunları kullanmanız gerekecektir. Yukarıdaki modelimi kullanarak her şeyin titiz bir içerik olarak ele alındığını ve hiçbir şeyin değerlendirilmediğini göreceksiniz.

$MyName = 'Priyanka Pillai'
'Hello $($MyName), today is $((Get-Date).DayOfWeek)'

Mümkün olan en iyi verimi alabilmeniz için bu ikisi arasındaki zıtlığı bilmeniz tartışmasız zorunludur. Bir dizede tam olarak kaç karakter bulunduğunu öğrenmeniz gerekiyorsa, bunu bulmak için Uzunluk özelliğini kullanabilirsiniz.

$MyName = "Boe Prox"
("Hello $($MyName), today is $((Get-Date).

DayOfWeek)”).LengthPowerShell Dize İşlevlerindeki dizelerin, titiz dizeleri veya faktörleri yönetiyor olmanızdan bağımsız olarak güvenilir protestolar olduğunu anlayın. Daha sonra string nesnelere yönelik stratejiler ihtiyacınız olan kapasitelerin büyük bir kısmını sağlar. Elbette bunları Get-Member komutuyla gösterebilirsiniz.

"Hello world" | Get-Member

Dizeleri Karşılaştırma

Sonuç olarak, dizeler arasındaki kontrastları belirlemek için sayısal nitelikler açısından birbirinden ayırt edilemeyen korelasyon yöneticileriyle çalışabilirsiniz. Temel olarak bu, özel durumları destekleyen - eq ve - ne, tıpkı - benzeri içerir.

String nesneleri de aynı şekilde bu nedenle teknikler sunar. Ana dizenin ikinci dizeden "büyük" olması durumunda (yani sıralama isteğinde bazı şeyleri başlatıyorsa), cmdlet 1 değerini döndürür; birincil dize daha küçükse sonuç -1'dir.

(“Priyanka Pillai”).CompareTo(“Priyanka” + " " + “Pillai”)

Yukarıdaki örnekte CompareTo, dizelerin ayırt edilemez olması nedeniyle 0 değerini döndürür. Tersine, Equals ile neredeyse aynı olan çağrı True değerini döndürür:

(“Priyanka Pillai”).Equals(“Priyanka” + " " + “Pillai”)

Karakterleri Arama ve Değiştirme

PowerShell Dize İşlevleri, alt dizeleri keşfedecek ve destekleyecek çeşitli sistemleri bilir. Daha fazla talep gerektiren işler için, koordinatör veya yedek yöneticilerle ilişkilendirilebilecek sıradan eklemlere erişilebilir.

Dahası, string nesnesi bu görev için birkaç strateji sunar. Açıkçası, bu stratejilerin her birinin belirli bir nedeni vardır. Suppplant bu stratejiler arasında en az karmaşık olanıdır ve standart ifadeleri desteklemez.

("Priyanka Pillai").Replace(“Priyanka”, “P”)

- koordinat yöneticisinin bir ortağı mevcut değil. Bununla birlikte, PowerShell String Functions, belirli bir takip türü üzerinde pratik yapan birkaç tekniğin temelini oluşturur. Örneğin, StartsWith ve EndsWith, bir dizenin belirli bir karakter veya dizeyle ayrı ayrı başlayıp bitmeyeceğine karar verir. Benzer şekilde, İçerir, bir dizenin belirli bir alt dize içerip içermediğini bilmenizi sağlar:

(“Priyanka Pillai”).Contains(“ll”)

Dizeleri Bölme

Bunun tersini yapmak için (yani parça dizileri için), bölme tekniğini veya bölme yöneticisini kullanabilirsiniz. Önceki daha az zordur ve kesin sınırlayıcıların kullanımını dikkate alır; yönetici yine normal ifadeleri destekler.

Ekteki örnekte, dize ikili “ll”nin bir parçası ve boşluktadır. Sınırlayıcının kendisi bir kenara düşüyor:

("PriyankaPillai").split("ll"" ")

Dizeleri Yönetme

Diyelim ki virgülle ayrılmış bir dizeniz var, ancak bunu çeşitli şeylere dönüştürmeniz gerekiyordu. Bu aktiviteyi gerçekleştirmek için .Split() stratejisini kullanabilir veya - Split yöneticisini kullanabiliriz. Hatırlanması gereken en önemli şey, kullanılmasıdır. split() stratejisi titiz bir metodolojidir ve büyük/küçük harfe duyarlıdır. Yani talep ettiğiniz şey, aldığınız şeydir. Kullanma - Bölme, daha ziyade Normal İfadeler kullanmanızı bekler, bu nedenle bu stratejiyi anladığınızdan emin olmalısınız. Ancak - Split ile kural olarak bu durum için karşılaştırma karakterini (örneğin virgül) kullanabilirsiniz.

$Text = 'alpha,beta,gamma,sigma'
$Text.Split(',')
$Text -split  ','

Bu öğrenmeyi SubString() ile gerçekten bu karaktere kadar karakterlerin çoğunu göstermek için kullanabilirim. Substring ile bir başlangıç kaydı belirtebiliyorum ve sonrasında içeriğin büyük bir kısmını sonuna kadar ya da önceden belirlenen bir dosyaya gidene kadar gösterebiliyorum. Dizinin uzunluğunu aşan bir kayıt belirtmeniz durumunda hataya yol açacağını unutmayın.

Bugün belirteceğim şeyin tam tersi, hem.Replace() tekniğini hem de - Değiştir yöneticisini kullanan Düzenli İfade yaklaşımını kullanarak bir dizedeki şeyleri değiştirme şeklinizdir. Tıpkı .Split() yöneticisi gibi, büyük/küçük harfe duyarlı katı bir saygı gerektirirken, normal ifade, yerine geçebilecekleriniz konusunda daha fazla uyarlanabilirlik sağlar.

Çözüm

Alt çalışmalar bu kodu bir IDE'de test etmeli ve anlamalarını daha da geliştirmek için temel değişikliği baştan yapmalıdır. String kontrolünün herhangi bir programlama dilinde bilinmesi önemlidir ve tasarımcılar tarafından günde bir kez kullanılır.

İlgili makaleler