Ich glaube, es ist ein Fehler im PowerShell-Parser. Es sieht so aus, als würde es im Anweisungsanalysemodus zuerst versuchen, das erste als BareWord
Zeichenkettenliteral zu interpretieren . Und wenn es fehlgeschlagen ist, wird ein Fehler ausgegeben. Sie können dieses Problem umgehen, indem Sie vor oder nach dem Gleichheitszeichen ein zusätzliches Leerzeichen einfügen:
$herestr =@" '"' "@
oder
$herestr= @" '"' "@
Oder mit Klammern:
[void]($herestr=@" '"' "@)
Da Klammern keine Zuweisung oder Inkrementierung / Dekrementierung sind, schreiben sie das Ergebnis eines Ausdrucks in die Pipeline, im Gegensatz zum bloßen Zuweisungsausdruck. Daher müssen Sie es explizit mit [void]
oder einer anderen Methode ignorieren .