Mientras que la expresión:
"string1" + "string2" + "string3"
Concatenará las cuerdas. Debe poner un $ delante del paréntesis para que se evalúe como un argumento único cuando se pasa a un comando de PowerShell. Ejemplo:
Write-Host $( "string1" + "string2" + "string3" )
Como beneficio adicional, si desea que abarque varias líneas, debe usar la sintaxis de retroceso al final de la línea (sin espacios ni caracteres a la derecha del retroceso). Ejemplo:
Write-Host $(`
"The rain in " +`
"Spain falls mainly " +`
"in the plains" )`
-ForegroundColor Yellow
(En realidad, creo que Powershell se implementa actualmente un poco mal porque requiere retrocesos innecesarios entre paréntesis. Si Microsoft simplemente siguiera las reglas "Python" o "TCL" Paréntesis de permitirle poner tantas líneas nuevas como desee entre el inicio y terminando el paréntesis, entonces resolverían la mayoría de los problemas que a la gente no le gusta sobre PowerShell relacionado con la continuación de línea y la concatenación de cadenas.He descubierto que a veces puede dejar atrás los ticks en las continuaciones de línea entre paréntesis, pero realmente flakey e impredecible si funcionará ... es mejor simplemente agregar los backticks).
Write-host ($assoc.Id.ToString() + " - " + $assoc.Name + " - " + $assoc.Owner)
aquí $ assoc.Id es un,Int32
así que tenemos que usar su representación de cadena. De lo contrario, PS intenta realizar una suma aritmética en lugar de concatenación.