Enquanto expressão:
"string1" + "string2" + "string3"
concatenará as cordas. Você precisa colocar um $ na frente dos parênteses para fazê-lo avaliar como um único argumento quando passado para um comando do PowerShell. Exemplo:
Write-Host $( "string1" + "string2" + "string3" )
Como bônus, se você deseja que ele abranja várias linhas, use a sintaxe do backtick desagradável no final da linha (sem espaços ou caracteres à direita do backtick). Exemplo:
Write-Host $(`
"The rain in " +`
"Spain falls mainly " +`
"in the plains" )`
-ForegroundColor Yellow
(Na verdade, acho que o Powershell está atualmente implementado um pouco errado, pois exige back-ticks desnecessários entre parênteses. Se a Microsoft seguir apenas as regras de parênteses "Python" ou "TCL", permitirá que você coloque quantas linhas novas desejar entre iniciar e terminando entre parênteses, eles resolveriam a maioria dos problemas que as pessoas não gostam sobre o PowerShell relacionados à continuação de linhas e concatenação de strings.Eu descobri que você pode deixar os back-ticks algumas vezes nas continuações de linha entre parênteses, mas é realmente flakey e imprevisível se funcionar. é melhor adicionar apenas os backticks.)
Write-host ($assoc.Id.ToString() + " - " + $assoc.Name + " - " + $assoc.Owner)
aqui $ assoc.Id é um,Int32
então precisamos usar sua representação de strings. Caso contrário, o PS tenta executar uma adição aritmética em vez de concatenação.