Під час вираження:
"string1" + "string2" + "string3"
буде об'єднувати рядки. Потрібно поставити $ перед дужки, щоб він оцінив як єдиний аргумент при передачі команді powershell. Приклад:
Write-Host $( "string1" + "string2" + "string3" )
Як бонус, якщо ви хочете, щоб він охоплював кілька рядків, тоді вам потрібно використовувати синтаксис ackward backtick в кінці рядка (без пробілів чи символів праворуч від вибору). Приклад:
Write-Host $(`
"The rain in " +`
"Spain falls mainly " +`
"in the plains" )`
-ForegroundColor Yellow
(Насправді, я думаю, що в даний час Powershell реалізований трохи неправильно, вимагаючи непотрібних зворотних кліщів між дужками. Якщо Microsoft просто дотримуватиметься правил "Python" або "TCL" Parenthesis, що дозволяє вам розміщувати стільки нових рядків, скільки ви хочете, між початковим і початковим закінчуючи дужки, тоді вони вирішили б більшість проблем, які людям не подобаються у зв'язку із продовженням рядків та об'єднанням рядків. Я виявив, що ви можете іноді залишати зворотні відмітки на продовження рядків між дужками, але його насправді лускатий і непередбачуваний, якщо він буде працювати .. його краще просто додати підпори.)
Write-host ($assoc.Id.ToString() + " - " + $assoc.Name + " - " + $assoc.Owner)
вкладаєте вираз у круглі дужки: тут $ assoc.Id - цеInt32
так, що ми повинні використовувати його рядкове подання. В іншому випадку PS намагається виконати арифметичне додавання замість конкатенації.