Join-String (Microsoft.PowerShell.Utility)


Join-String

Modül:
Microsoft.PowerShell.Utility

İşlem hattındaki nesneleri tek bir dizede birleştirir.

Sözdizimi

Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]
Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-SingleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]
Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-DoubleQuote]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]
Join-String
    [[-Property] <PSPropertyExpression>]
    [[-Separator] <String>]
    [-OutputPrefix <String>]
    [-OutputSuffix <String>]
    [-FormatString <String>]
    [-UseCulture]
    [-InputObject <PSObject[]>]
    [<CommonParameters>]

Tanım

Join-String cmdlet'i ardışık düzen nesnelerindeki metni tek bir dizede birleştirir veya birleştirir.

Hiçbir parametre belirtilmezse, ardışık düzen nesneleri bir dizeye dönüştürülür ve varsayılan $OFS ayırıcıyla birleştirilir.

Not

$OFS ayarını yaptığınızda, değişken $null olarak sıfırlanana kadar değeri dizelere dönüştürülen dizileri birleştirmek için kullanılır. $OFS kullanmanın kodunuzun herhangi bir yerinde istenmeyen etkileri olabileceğinden, bunun yerine Ayırıcı parametresini kullanmak en iyisidir.

Bir özellik adı belirtilerek özelliğin değeri bir dizeye dönüştürülür ve bir dizeye birleştirilir.

Özellik adı yerine bir komut dosyası bloğu kullanılabilir. Betik bloğunun sonucu, sonucu oluşturmak üzere birleştirilmeden önce bir dizeye dönüştürülür. Bir nesnenin özelliğinin metnini veya bir dizeye dönüştürülen nesnenin sonucunu birleştirebilir.

Bu cmdlet PowerShell 6.2'de tanıtıldı.

Örnekler

Örnek 1: Dizin adlarını birleştirme

Bu örnek, dizin adlarını birleştirir, çıktıyı çift tırnak içine alır ve dizin adlarını virgül ve boşlukla (, ) ayırır. Çıktı bir dize nesnesidir.

Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '

"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"

Get-ChildItem, C:\ sürücüsüne ilişkin tüm dizin adlarını almak için Directory parametresini kullanır. Nesneler işlem hattından Join-String'e gönderilir. Özellik parametresi dizin adlarını belirtir. DoubleQuote parametresi, dizin adlarını çift tırnak işaretleriyle sarar. Ayırıcı parametresi, dizin adlarını ayırmak için virgül ve boşluk (, ) kullanılacağını belirtir.

Get-ChildItem nesneleri System.IO.DirectoryInfo'dur ve Join-String, nesneleri System.String'e dönüştürür. .

Örnek 2: Dizin adlarını birleştirmek için bir özellik alt dizesi kullanın

Bu örnek, dizin adlarının ilk dört harfini almak için bir alt dize yöntemi kullanır, çıktıyı tek tırnak içine alır ve dizin adlarını noktalı virgülle (;) ayırır.

Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'

'Perf';'Prog';'Prog';'User';'Wind'

Get-ChildItem, C:\ sürücüsüne ilişkin tüm dizin adlarını almak için Directory parametresini kullanır. Nesneler işlem hattından Join-String'e gönderilir.

Özellik parametresi komut dosyası bloğu, her nesnenin Ad özellik alt dizesini belirtmek için otomatik değişkeni ($_) kullanır. Alt dize, her dizin adının ilk dört harfini alır. Alt dize, karakterin başlangıç ve bitiş konumlarını belirtir. SingleQuote parametresi, dizin adlarını tek tırnak işaretleriyle sarar. Ayırıcı parametresi, dizin adlarını ayırmak için noktalı virgül (;) kullanılacağını belirtir.

Otomatik değişkenler ve alt dizeler hakkında daha fazla bilgi için bkz. about_Automatic_Variables ve Substring.

Örnek 3: Birleştirme çıktısını ayrı bir satırda görüntüleyin

Bu örnekte, hizmet adları her hizmetle ayrı bir satırda ve bir sekmeyle girintili olarak birleştirilir.

Get-Service -Name se* | Join-String -Property Name -Separator "`r`n`t" -OutputPrefix "Services:`n`t"

Services:
    seclogon
    SecurityHealthService
    SEMgrSvc
    SENS
    Sense
    SensorDataService
    SensorService
    SensrSvc
    SessionEnv

Get-Service, se* ile başlayan hizmetleri belirtmek için Ad parametresini kullanır. Yıldız işareti (*) herhangi bir karakter için joker karakterdir.

Nesneler, hizmet adlarını belirtmek için Property parametresini kullanan Join-String'e ardışık düzen yoluyla gönderilir. Ayırıcı parametresi, satırbaşını (`r), yeni satırı (`n) ve sekmeyi () temsil eden üç özel karakteri belirtir. `t). OutputPrefix, çıktının ilk satırından önce yeni bir satır ve sekmeyle birlikte Hizmetler: etiketini ekler.

Özel karakterler hakkında daha fazla bilgi için bkz. about_Special_Characters.

Örnek 4: Bir nesneden sınıf tanımı oluşturma

Bu örnek, mevcut bir nesneyi şablon olarak kullanarak bir PowerShell sınıfı tanımı oluşturur.

Bu kod örneği, satır uzunluğunu azaltmak ve okunabilirliği artırmak için sıçramayı kullanır. Daha fazla bilgi için bkz. about_Splatting.

$obj = [pscustomobject] @{Name = "Joe"; Age = 42}
$parms = @{
  Property = "Name"
  FormatString = '  ${0}'
  OutputPrefix = "class {`n"
  OutputSuffix = "`n}`n"
  Separator = "`n"
}
$obj.PSObject.Properties | Join-String @parms

class {
  $Name
  $Age
}

Parametreler

-DoubleQuote

Her ardışık düzen nesnesinin dize değerini çift tırnak içine alır.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-FormatString

Her ardışık düzen nesnesinin bunlara katılmadan önce nasıl biçimlendirilmesi gerektiğini belirten bir biçim dizesini belirtir. Geçerli nesneyi temsil etmek için {0} yer tutucusunu kullanın. Biçimlendirilmiş dizede küme parantezlerini ({) tutmanız gerekiyorsa küme parantezlerini ({{ ve }<) iki katına çıkararak bunlardan kurtulabilirsiniz. /kod>).

Daha fazla bilgi için bkz. String.Format yöntemi ve Bileşik Biçimlendirme.

Tip :

String

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-InputObject

Birleştirilecek metni belirtir. Metni içeren bir değişken girin veya nesnelerin dizeler halinde birleşmesini sağlayan bir komut veya ifade yazın.

Tip :

PSObject[]

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

True

Joker karakterleri kabul et:

False

-OutputPrefix

Çıkış dizesinden önce eklenen metin. Dize, satır başı (`r), yeni satır (`n) ve sekme (`t) gibi özel karakterler içerebilir.

Tip :

String

Takma adlar:

op

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-OutputSuffix

Çıkış dizesine eklenen metin. Dize, satır başı (`r), yeni satır (`n) ve sekme (`t) gibi özel karakterler içerebilir.

Tip :

String

Takma adlar:

os

Konum:

Adlandırılmış

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Property

Metne dönüştürülecek bir özelliğin adı veya özellik ifadesi.

Tip :

PSPropertyExpression

Konum:

0

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-Separator

Her ardışık düzen nesnesi için metnin arasına eklenen virgül veya noktalı virgül gibi metin veya karakterler.

Varsayılan olarak boru hattı nesneleri ayırıcı olmadan birleştirilir. Çıkış Alanı Ayırıcı tercih değişkeni ($OFS) ayarlanmışsa, bu parametre belirtilmediği sürece bu değer kullanılır.

Not

$OFS ayarını yaptığınızda, değişken $null olarak sıfırlanana kadar değeri dizelere dönüştürülen dizileri birleştirmek için kullanılır. $OFS kullanmanın kodunuzun herhangi bir yerinde istenmeyen etkileri olabileceğinden, bunun yerine Ayırıcı parametresini kullanmak en iyisidir.

Tip :

String

Konum:

1

Varsayılan değer:

None

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-SingleQuote

Her ardışık düzen nesnesinin dize değerini tek tırnak içine alır.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

-UseCulture

Öğe sınırlayıcı olarak geçerli kültürün liste ayırıcısını kullanır. Bir kültürün liste ayırıcısını bulmak için şu komutu kullanın: (Get-Culture).TextInfo.ListSeparator.

Tip :

SwitchParameter

Konum:

Adlandırılmış

Varsayılan değer:

False

Gerekli:

False

Boru hattı girişini kabul edin:

False

Joker karakterleri kabul et:

False

Girişler

PSObject

Çıkışlar

Dize

İlgili makaleler