Вот почему вы не можете делать то, что делаете, и документы конкретно показывают это.
Эта пунктуация называется Here String. и служит определенной цели c .
Если вы сделали это в реальном редакторе PowerShell (ISE, VSCode), обратите внимание, что помещение всего этого в одну строку приводит к синтаксической ошибке.
Правильная здесь строка
$Source = @"
public class T
{
public static int Add(int a, int b)
{
return (a + b);
}
}
"@
Это не правильно (будет отображаться синтаксическая ошибка подсветки) ...
$Source = @"public class T{public static int Add(int a, int b){return (a + b);}}"@
... потому что эти '@ "" @' должны быть в отдельных строках и полностью выровнены по левому краю, и ничто не может следовать первый в той же строке или перед вторым в той же строке
Это не показывает подсветку синтаксической ошибки:
$Source = @"
public class T{public static int Add(int a, int b){return (a + b);}}
"@
... это можно сделать в консольный хост PowerShell, но не cmd.exe, вызывающий powereshell.exe.
На консольном хосте не будут отображаться синтаксические ошибки, равно как и редакторы, если они вообще есть.
Каждый раз, когда вы печатаете код в consolehost, который требует CRLF или тому подобное, Вы должны напечатать это таким образом. И, наконец, выполнение этого в cmd.exe никогда не будет отображать ошибки синтаксиса PowerShell, пока вы не попытаетесь его запустить.
Это все о полном понимании синтаксиса и пунктуации PowerShell.
Полное руководство по пунктуации PowerShell