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 Join-String
de commande joint ou combine du texte à partir d’objets de pipeline dans 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 $OFS
par défaut.
Remarque
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 $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"
Get-ChildItem
utilise le paramètre Directory pour obtenir tous les noms de répertoires du C:\
lecteur.
Les objets sont envoyés vers le bas du pipeline vers 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 Séparateur spécifie d’utiliser une virgule et un espace (,
) pour séparer les noms de répertoires.
Les Get-ChildItem
objets 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'
Get-ChildItem
utilise le paramètre Directory pour obtenir tous les noms de répertoires du C:\
lecteur.
Les objets sont envoyés vers le bas du pipeline vers Join-String
.
Le bloc de script de paramètre property utilise la variable automatique ($_
) pour spécifier la sous-chaîne de propriété Name de chaque objet. La sous-chaîne obtient les quatre premières lettres de chaque nom de répertoire. La sous-chaîne spécifie les positions de début et de fin du caractère. Le paramètre SingleQuote encapsule les noms de répertoires avec des guillemets simples. Le paramètre Séparateur spécifie d’utiliser un point-virgule (;
) 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
Get-Service
utilise le paramètre Name avec pour spécifier les services qui commencent par se*
. L’astérisque (*
) est un caractère générique pour n’importe quel caractère.
Les objets sont envoyés vers le bas du pipeline pour Join-String
utiliser le paramètre Property pour spécifier les noms de service. Le paramètre Séparateur spécifie trois caractères spéciaux qui représentent un retour chariot (`r
), newline (`n
) et tabulation (`t
). OutputPrefix insère une étiquette 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 {0}
réservé 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 et la mise en forme composite.
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 la variable de préférence de séparateur de champ de sortie ($OFS
) est définie, cette valeur est utilisée, sauf si ce paramètre est spécifié.
Remarque
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 $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 |