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
.
Note
Lorsque vous définissez $OFS
sa valeur est utilisée pour joindre des tableaux lorsqu’ils sont convertis en chaînes jusqu’à ce que la variable soit réinitialisée à $null
. Étant donné que l’utilisation de $OFS
peut avoir des effets inattendus ailleurs dans votre code, il est préférable d’utiliser le paramètre Séparateur à la place.
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 Services:
avec une nouvelle ligne et un nouvel onglet avant la première ligne de sortie.
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
Spécifie une chaîne de format qui spécifie la façon dont chaque objet de pipeline doit être mis en forme avant de les joindre. Utilisez l’espace réservé {0}
pour représenter l’objet actuel. Si vous devez conserver les accolades ({}
) dans la chaîne mise en forme, vous pouvez les échapper en doublant les accolades ({{
et }}
).
Pour plus d’informations, consultez la méthode string.Format
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é à convertir 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.
Par défaut, les objets de pipeline sont joints sans séparateur. Si l'séparateur de champ de sortie variable de préférence ($OFS
) est définie, cette valeur est utilisée sauf si ce paramètre est spécifié.
Note
Lorsque vous définissez $OFS
sa valeur est utilisée pour joindre des tableaux lorsqu’ils sont convertis en chaînes jusqu’à ce que la variable soit réinitialisée à $null
. Étant donné que l’utilisation de $OFS
peut avoir des effets inattendus ailleurs dans votre code, il est préférable d’utiliser le paramètre Séparateur à la place.
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 |