Join-String
Combine des objets du pipeline en une seule chaîne.
Syntaxe
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
L’applet de commande Join-String
joint ou combine du texte à partir d’objets de pipeline en une seule chaîne.
Si aucun paramètre n’est spécifié, les objets de pipeline sont convertis en chaîne et joints avec le séparateur par défaut $OFS
.
En spécifiant un nom de propriété, la valeur de la propriété est convertie en chaîne et jointe en chaîne.
Au lieu d’un nom de propriété, un bloc de script peut être utilisé. Le résultat du bloc de script est converti en chaîne avant qu’il ne soit joint pour former le résultat. Il peut combiner le texte de la propriété d’un objet ou le résultat de l’objet qui a été converti en chaîne.
Cette applet de commande a été introduite dans PowerShell 6.2.
Exemples
Exemple 1 : Joindre des noms d’annuaires
Cet exemple joint les noms de répertoires, encapsule la sortie entre guillemets doubles et sépare les noms de répertoires par une virgule et un espace (,
). La sortie est un objet de chaîne.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Join-String
. Le paramètre Property spécifie les noms de répertoires. Le paramètre DoubleQuote encapsule les noms de répertoires avec des guillemets doubles.
Le paramètre
Les objets Get-ChildItem
sont System.IO.DirectoryInfo et Join-String
convertit les objets en System.String.
Exemple 2 : Utiliser une sous-chaîne de propriété pour joindre des noms de répertoires
Cet exemple utilise une méthode de sous-chaîne pour obtenir les quatre premières lettres de noms de répertoires, encapsuler la sortie entre guillemets simples et sépare les noms de répertoires par un point-virgule (;
).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Join-String
.
Le bloc de script de paramètre property ;
) pour séparer les noms de répertoires.
Pour plus d’informations sur les variables automatiques et les sous-chaînes, consultez about_Automatic_Variables et sous-chaîne.
Exemple 3 : Afficher la sortie de jointure sur une ligne distincte
Cet exemple joint les noms de service avec chaque service sur une ligne distincte et mis en retrait par un onglet.
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
*
) est un caractère générique pour n’importe quel caractère.
Les objets sont envoyés au pipeline pour Join-String
qui utilise le paramètre Property pour spécifier les noms de service. Le paramètre séparateur
Pour plus d’informations sur les caractères spéciaux, consultez about_Special_Characters.
Exemple 4 : Créer une définition de classe à partir d’un objet
Cet exemple génère une définition de classe PowerShell à l’aide d’un objet existant en tant que modèle.
Cet exemple de code utilise la mise en forme pour réduire la longueur de la ligne et améliorer la lisibilité. Pour plus d’informations, consultez 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
}
Paramètres
-DoubleQuote
Encapsule la valeur de chaîne de chaque objet de pipeline entre guillemets doubles.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-FormatString
Chaîne de format qui spécifie la façon dont chaque élément doit être mis en forme.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-InputObject
Spécifie le texte à joindre. Entrez une variable qui contient le texte, ou tapez une commande ou une expression qui obtient les objets à joindre à des chaînes.
Type: | PSObject[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-OutputPrefix
Texte inséré avant la chaîne de sortie. La chaîne peut contenir des caractères spéciaux tels que retour chariot (`r
), newline (`n
) et tabulation (`t
).
Type: | String |
Alias: | op |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-OutputSuffix
Texte ajouté à la chaîne de sortie. La chaîne peut contenir des caractères spéciaux tels que retour chariot (`r
), newline (`n
) et tabulation (`t
).
Type: | String |
Alias: | os |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Property
Nom d’une propriété ou d’une expression de propriété qui projette l’objet de pipeline en texte.
Type: | PSPropertyExpression |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Separator
Texte ou caractères tels qu’une virgule ou un point-virgule inséré entre le texte de chaque objet de pipeline.
Type: | String |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-SingleQuote
Encapsule la valeur de chaîne de chaque objet de pipeline entre guillemets simples.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-UseCulture
Utilise le séparateur de liste pour la culture actuelle comme délimiteur d’élément. Pour rechercher le séparateur de liste pour une culture, utilisez la commande suivante : (Get-Culture).TextInfo.ListSeparator
.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |