Supposons l'extrait suivant :
$name = "Slim Shady"
Write-Host "My name is " + $name
Je m'attendais à ce que ce bout de phrase s'affiche :
My name is Slim Shady
Mais au lieu de cela, il montre :
My name is + Slim Shady
Ce qui me fait penser que le +
n'est pas approprié pour concaténer des chaînes de caractères et des variables.
L'exemple ci-dessus est un exemple artificiel. Dans mon cas réel, il y a une variable $assoc
avec des propriétés Id
, Name
et Owner
que j'aimerais faire partie de la chaîne.
Comment aborder cette question avec Powershell ?
37 votes
Votre code fonctionne si tous les éléments sont des chaînes de caractères et vous mettez l'expression entre parenthèses :
Write-host ($assoc.Id.ToString() + " - " + $assoc.Name + " - " + $assoc.Owner)
ici $assoc.Id est unInt32
Nous devons donc utiliser sa représentation sous forme de chaîne. Sinon, PS essaie d'effectuer une addition arithmétique au lieu d'une concaténation.6 votes
Étant donné le nombre de consultations, j'ai pensé qu'il était approprié de réparer le texte de cette question, même si mes modifications ont changé le contenu de manière assez importante. J'ai essayé de garder la terminologie/la formulation et l'esprit de la question intacts, tout en l'améliorant suffisamment pour qu'elle puisse être rouverte.