PowerShell birleştirme dizisi | PowerShell birleştirme dizisi örneklerini öğrenin


PowerShell'e giriş diziye katılın.

PowerShell join dizisi, operatörü kullanarak ve String sınıfının yöntemlerini kullanarak dizileri birleştirme operatörüdür. İki diziyi birleştirmek, dizinin sabit boyutlu yapısı nedeniyle (ArrayList değil) üçüncü diziyi oluşturur. join dizisinin çıktısı aynı zamanda Object'in koleksiyonudur.

Sözdizimi

Diziye Birleştirme İşlemi çeşitli sözdizimlerini destekler.

  • İki dize dizisini veya farklı veri türü dizisini birleştirmek için '+' Operatörü.
  • Join(Char, Object[]): Karakteri Object dizisine birleştirmek için.
  • Join(Char, String[]): Karakteri dize dizisine birleştirmek için.
  • Join(String, Object[]): Dizeyi Object dizisine birleştirmek için.
  • Join(Char, String, Int32, Int32): Karakteri, başlangıç dizininden dize sayısına kadar dize dizisine birleştirmek için.

Örnekler

İşte aşağıda belirtilen örnekler

Örnek 1 - İki diziyi '+' operatörüyle birleştirme.

Diyelim ki iki farklı dizimiz var ve bunları birleştirmemiz gerekiyor.

$array1 = "Cat","Dog","Cow"
$array2 = "Cars","Bikes","Trucks"
To join two arrays, we will use the ‘+’ operator here.
$array = $array1 + $array2
$array

Çıktı:

Örnek 2 - Farklı veri türlerine sahip iki diziyi birleştirme.

İlk örnekte iki PowerShell dizisinin depoladığı değerlerin string koleksiyonu olduğunu gördük. Ancak dizede farklı değerleri saklayabilir ve bunlara katılabiliriz.

Örneğin,

$array1 = "Cat","Dog","Cow"
$array2 = 11,"TwoTwo",33,"FourFour"

$Array1 ve $Array2 değişkenlerinin veri türünü kontrol edersek, aşağıda gösterildiği gibi bir Object[] koleksiyonu olacaktır.

Bu, dizideki anlamına gelir; girdiğiniz farklı nesne türlerinin önemi yoktur; sonuçta nesnelerin koleksiyonu haline gelir. Böylece '+' operatörünü kullanarak istediğimiz sayıda diziyi birleştirebiliriz.

Bu örnekte iki diziyi birleştirmek,

$array = $array1 + $array2
$array

Çıktı:

İlk iki örnekte sonucu saklamak için üçüncü bir dizi kullanıyoruz. Veri tipini kontrol edelim; aynı zamanda nesne koleksiyonu da olmalıdır.

$array.GetType()

Çıktı:

Örnek 3 - ArrayList kullanarak iki diziyi birleştirme

Aşağıdaki örnekte .Net sınıfını System.Collection.ArrayList kullanarak iki diziyi birleştireceğiz ve Birleştirme İşlemini gerçekleştirmek için Add() yöntemini kullanmamız gerekiyor. Aşağıda gösterildiği gibi iki dizimiz var ve bunlar Add() yöntemi kullanılarak birleşiyor.

$array1 = "Cat","Dog","Cow"
$array2 = 11,"TwoTwo",33,"FourFour"
foreach($value in $array1){$JoinArray.Add($value) | Out-Null}
foreach($value in $array2){$JoinArray.Add($value) | Out-Null}
$JoinArray

Çıktı:

Diziyi $JoinArray($Array1) gibi doğrudan Add yöntemine ekleyebiliriz, ancak sorun, dizinin tamamını dizin 0 olarak ve sonraki $JoinArray($Array2) dizisini dizin 1 olarak ele almasıdır. Bu yüzden eklemek zorunda kaldık foreach döngüsünü kullanarak her değer.

Örnek 4 - String Birleştirme Dizisi Örneği - I

Dize dizisinde System.String .Net sınıfı, Birleştirme Yöntemlerini destekler. Diziye katılmak için birden fazla aşırı yükleme yöntemi vardır. String birleştirme yöntemi için aşağıdaki referans bağlantısına bakın.

https://docs.microsoft.com/en-us/dotnet/api/system.string.join?view=net-5.0#System_String_Join_System_Char_System_Object

Yukarıdaki yöntemlerden birkaçını kullanacağız.

Yukarıdaki Tüm Birleştirme Yöntemlerinde, İlk parametre her zaman bir Ayırıcıdır ve ikincisi, Birleştirme işlemini gerçekleştirecek öğedir.

Burada kullanacağımız İlk String Birleştirme yöntemi, join(Char, Object[]). Burada Char ayırıcıdır ve Object[] işlenecek öğedir. Bu bir Object[] dizisidir, yani içine herhangi bir nesneyi iletebiliriz ve dolayısıyla bir string yöntemidir; bu Object[]'i String dizisine dönüştürmelidir. Örneğin,

$Services = Get-Service
[String]::Join('|',$Services)

Çıktı:

Yukarıdaki örnekte görebileceğiniz gibi, her hizmet nesnesini[] '|' ayırıcısıyla birleştirdik. Bu örnekte, çıktı uygun formatta olabilir, ancak Get-Process gibi bazı örneklerde, Object[]'in tamamını dize olarak ilettiğinizde. Örneğin,

$procs = Get-Process
[String]::Join('|',$procs)

Çıktı:

Yukarıdaki çıktı istenen değildir ancak bunun yerine, sağlanan ayırıcıyla Nesneyi ayırmak için onun özelliğini kullanabiliriz. Örneğin,

[String]::Join('|',$procs.name)

Çıktı:

Örnek #5 - Dize Birleştirme Dizisi örneği - II

String .Net Sınıfının bir diziye katılması için kullanabileceğimiz ikinci yöntem, join(Char, String[]) yöntemidir. Dize dizisini ilk parametrede belirtilen ayırıcıyla birleştirir. Örneğin,

$str = "This","is","PowerShell","String"
[String]::Join('^',$str)

Çıktı:

Space'e katılmak için,

[String]::Join(' ',$str)
This is PowerShell String

Örnek #6 - Dize Birleştirme Dizisi Örneği - III

Yukarıdaki iki örnekte, Karakter kullanarak bir dize dizisini birleştirdik. Artık aşırı yükleme yöntemi bunu desteklediği için dizeyi başka bir dize kullanarak da birleştirebiliriz. İkinci parametrede ise ya Object'i ya da bir String'i geçirebiliriz.

It String'in diziye bitiştirilmesi iki yöntemi destekler.

  • Join(String, Object[]): Object dizisine benzer (Get-Service veya Get-process), her nesne çıkışı arasındaki dize ayırıcıyla birleştirir. Örneğin,
$ser = Get-Service
[String]::Join('  Hello  ',$ser)

Çıktı:

Yukarıdaki örnekte gösterildiği gibi hizmetler, boşluk da dahil olmak üzere Hello anahtar sözcüğüyle ayrılır ve birleştirilir.

  • Join(String, String[]): Her öğe arasında Dize ayırıcıyı kullanarak dize dizisini birleştirir.

örneğin

$str = "This","is","PowerShell","String"
[String]::Join(' String ',$str)

Çıktı:

Örnek #7 - Dize Birleştirme Dizisi Örneği - IV

Bu yöntemde, birleştirmek için Object dizisi[] veya dize dizisi[] için ayırıcı olarak bir karakter veya dize kullanıyoruz. Bunun için iki ayrı yöntem kullanabiliriz.

  • Join(Char, String[], Int32, Int32)

Parametreler aşağıda açıklanmıştır.

  • Karakter: Verilen Giriş için bir karakter ayırıcı
  • Dize[]: Bir Karakterle ayrılacak ve birleştirilecek dize dizisi.
  • Int32: Birleştirme için Başlangıç Dizini.
  • Int32: Başlangıç Dizininden sayın.

Örneğin,

$str = "This","is","PowerShell","string","to","test","the","join","array"
[String]::Join('#',$str, 2,5)

Çıktı:

Yukarıdaki örnekte, başlangıç Dizini 2'den gelen dizeyi ve toplam 5 kelimeyi birleştirmek için Ayırıcı '#' kullanıyoruz.

  • Join(String, String[], Int32, Int32)

Yukarıdaki işleme benzer şekilde, başka bir dize kullanarak dize dizisini Başlangıç Dizini ve toplam sayımla birleştirmek için join yöntemini kullanabiliriz.

Örneğin,

$str = "This","is","PowerShell","string","to","test","the","join","array"
[String]::Join(" hello world ",$str, 1,3)

Çıktı:

Sonuç - PowerShell bir diziye katılıyor

PowerShell join dizisi script için oldukça kullanışlı ve güçlü bir işlemdir. Yola Katılma, dize dizisi arasına değer ekleme vb. gibi birçok temel amaca hizmet eder. Aynı dizi işlemlerine dolaylı olarak hizmet eden, Birleştirme Yolunu ve Birleştirme-ADlStoreItem gibi Birleştirme temellerini de sunan başka komutlar da vardır, ancak bunlar gelişmiş komutlardır.

İlgili makaleler