Aracılığıyla paylaş


Join-String

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

Syntax

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>]

Description

Join-String Cmdlet, işlem hattı nesnelerinden gelen metni tek bir dizede birleştirir veya birleştirir.

Hiçbir parametre belirtilmezse, işlem hattı nesneleri bir dizeye dönüştürülür ve varsayılan ayırıcı $OFSile birleştirilir.

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

Özellik adı yerine betik 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 dizeye dönüştürülen nesnenin sonucunu birleştirebilir.

Bu cmdlet PowerShell 6.2'de kullanıma sunulmuştur.

Örnekler

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

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

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

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

Get-ChildItem , sürücünün tüm dizin adlarını almak için Directory parametresini C:\ kullanır. Nesneler işlem hattına Join-Stringgönderilir. Property parametresi dizin adlarını belirtir. DoubleQuote parametresi, dizin adlarını çift tırnak işaretleri ile sarmalar. Ayırıcı parametresi, dizin adlarını ayırmak için virgül ve boşluk (, ) kullanılacağını belirtir.

Nesneler Get-ChildItemSystem.IO.DirectoryInfo'dır ve Join-String nesneleri System.String'e dönüştürür.

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

Bu örnek, dizin adlarının ilk dört harfini almak için bir alt dize yöntemi kullanır, çıkışı 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 , sürücünün tüm dizin adlarını almak için Directory parametresini C:\ kullanır. Nesneler işlem hattına Join-Stringgönderilir.

Özellik parametresi betik bloğu, her nesnenin Name özelliği alt dizesini belirtmek için otomatik değişken ($_) kullanır. Alt dize, her dizin adının ilk dört harfini alır. Alt dize, karakter başlangıç ve bitiş konumlarını belirtir. SingleQuote parametresi, dizin adlarını tek tırnak işaretleri ile sarmalar. 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 Alt Dize.

Örnek 3: Birleştirme çıkışını ayrı bir satırda görüntüleme

Bu örnek, hizmet adlarını her hizmetle ayrı bir satırda birleştirir ve sekmeyle girintili olarak ekler.

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-Serviceile se*başlayan hizmetleri belirtmek için ile Name parametresini kullanır. Yıldız işareti (*), herhangi bir karakter için joker karakterdir.

Nesneler, hizmet adlarını belirtmek için Join-StringProperty parametresini kullanan işlem hattına gönderilir. Ayırıcı parametresi, satır başı (), yeni satır ()`n ve sekmeyi (`r`t) temsil eden üç özel karakter belirtir. OutputPrefix, Services etiketini ekler: çıkışın ilk satırından önce yeni bir satır ve sekme ile.

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

Örnek 4: Bir nesneden sınıf tanımı İçerik Oluşturucu

Bu örnek, var olan 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 geliştirmek 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 işlem hattı nesnesinin dize değerini çift tırnak içine alır.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatString

Her öğenin nasıl biçimlendirilmesi gerektiğini belirten bir biçim dizesi.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Birleştirilecek metni belirtir. Metni içeren bir değişken girin veya dizelere birleştirecek nesneleri alan bir komut veya ifade yazın.

Type:PSObject[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OutputPrefix

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

Type:String
Aliases:op
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputSuffix

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

Type:String
Aliases:os
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

İşlem hattı nesnesini metne yansıtacak bir özelliğin veya özellik ifadesinin adı.

Type:PSPropertyExpression
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Separator

Her işlem hattı nesnesinin metni arasına eklenen virgül veya noktalı virgül gibi metinler veya karakterler.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SingleQuote

Her işlem hattı nesnesinin dize değerini tek tırnak içine alır.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseCulture

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Girişler

PSObject

Çıkışlar

String