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