Я считаю, что это ошибка в анализаторе PowerShell. Похоже, что когда он находится в режиме разбора операторов, он сначала пытается интерпретировать BareWord
строковый литерал. И если это не удалось, то это приведет к ошибке. Вы можете обойти это, поставив дополнительное пространство перед или после знака равенства:
$herestr =@" '"' "@
или же
$herestr= @" '"' "@
Или с помощью круглых скобок:
[void]($herestr=@" '"' "@)
Обратите внимание: поскольку скобки не являются присваиванием или приращением / уменьшением, они будут записывать результат выражения в конвейер, в отличие от простого выражения присваивания, поэтому вам необходимо явно игнорировать его с помощью [void]
любого другого метода.