Załóżmy, że mam następujący snippet:
$assoc = New-Object psobject -Property @{
Id = 42
Name = "Slim Shady"
Owner = "Eminem"
}
Write-host $assoc.Id + " - " + $assoc.Name + " - " + $assoc.Owner
I'd oczekiwałbym, że ten snippet się pokaże:
42 - Slim Shady - Eminem
.
Ale zamiast tego pokazuje:
42 + - + Slim Shady + - + Eminem
.
Co skłania mnie do myślenia, że operator +
nie jest'odpowiedni do łączenia łańcuchów i zmiennych.
Jak powinieneś podejść do tego za pomocą PowerShell?
Write-Host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"
Zobacz Specyfikacja języka Windows PowerShell w wersji 3.0, str. 34, rozwinięcie wyrażeń podrzędnych.
Jednym ze sposobów jest:
Write-host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"
Innym jest:
Write-host ("{0} - {1} - {2}" -f $assoc.Id,$assoc.Name,$assoc.Owner )
Albo po prostu (ale ja tego nie lubię ;) ):
Write-host $assoc.Id " - " $assoc.Name " - " $assoc.Owner