Context:
You can expand value of variables when you write variable name in double-quoted strings like:
> $var = "123" > Write-Host "$var" 123
Problem:
Some characters are treated as a part of a variable name, so you can’t use these characters as a separator of variables.
PS > $a = "FOO" PS > $b = "BAR" PS > Write-Host "! $a!$b" PS > Write-Host "`" $a`"$b" PS > Write-Host "# $a#$b" PS > Write-Host "$ $a`$$b" PS > Write-Host "% $a%$b" PS > Write-Host "& $a&$b" PS > Write-Host "' $a'$b" PS > Write-Host "( $a($b" PS > Write-Host ") $a)$b" PS > Write-Host "* $a*$b" PS > Write-Host "+ $a+$b" PS > Write-Host ", $a,$b" PS > Write-Host "- $a-$b" PS > Write-Host ". $a.$b" PS > Write-Host "/ $a/$b" PS > Write-Host ": $a:$b" ... prints "BAR" in PowerShell 2.0, causes ParserError in PowerShell 6.0 PS > Write-Host "; $a;$b" PS > Write-Host "< $a<$b" PS > Write-Host "= $a=$b" PS > Write-Host "> $a>$b" PS > Write-Host "? $a?$b" ... prints only "BAR" PS > Write-Host "@ $a@$b" PS > Write-Host "[ $a[$b" PS > Write-Host "\ $a\$b" PS > Write-Host "] $a]$b" PS > Write-Host "^ $a^$b" PS > Write-Host "_ $a_$b" ... ofcourse prints "BAR" PS > Write-Host "`` $a``$b" PS > Write-Host "{ $a{$b" PS > Write-Host "| $a|$b" PS > Write-Host "} $a}$b" PS > Write-Host "~ $a~$b"
Reason:
It seems by design.