9 часов ... Я начинаю ответ.
В Powershell все, чем вы манипулируете, является объектом.
поэтому «Server:» - это объект, $ a - это объект
PS> "server :".gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
Write-output
- это CmdLet, который помещает объект в своего рода список (канал), который будет использоватьсядругими CmdLets или скриптами.Так что на самом деле нет новой строки между «Server:» и «foo».Это способ, которым консоль показывает вам список (массив) объектов.Как вы можете видеть здесь под:
PS> $a = "foo"
PS> (Write-Output "Server :" $a).gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Ясно, что здесь это резюме, но я надеюсь, что оно поможет вам понять.