Stel dat ik het volgende fragment heb:
$assoc = New-Object psobject -Property @{
Id = 42
Name = "Slim Shady"
Owner = "Eminem"
}
Write-host $assoc.Id + " - " + $assoc.Name + " - " + $assoc.Owner
Ik'zou verwachten dat dit knipsel getoond wordt:
42 - Slim Shady - Eminem
Maar in plaats daarvan toont het:
42 + - + Slim Shady + - + Eminem
Dat doet me denken dat de +
operator niet geschikt is voor het aaneenschakelen van strings en variabelen.
Hoe moet je dit aanpakken met PowerShell?
Write-Host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"
Zie de Windows PowerShell Language Specification Version 3.0, p34, sub-expressies uitbreiding.
Eén manier is:
Write-host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"
Een andere is:
Write-host ("{0} - {1} - {2}" -f $assoc.Id,$assoc.Name,$assoc.Owner )
Of gewoon (maar ik hou er niet van ;) ):
Write-host $assoc.Id " - " $assoc.Name " - " $assoc.Owner
Je moet de expressie tussen haakjes zetten om te voorkomen dat ze worden behandeld als verschillende parameters voor het cmdlet:
Write-host ($assoc.Id + " - " + $assoc.Name + " - " + $assoc.Owner)