在$()子表达式中使用Write-Host始终输出到字符串的开头,而不管其位置如何。
例如:
"This is $(Write-Host 'now at the beginning' -NoNewline)"
输出:
now at the beginningThis is
其他cmdlet在此处按预期工作(例如"Today is $((Get-Date).DayOfWeek)"
,Today is Friday
)。
写主机有何不同?
答案 0 :(得分:3)
它没有输出到字符串"的开头,它向主机写入两次,向后'顺序。
"abc $()"
是一个包含子表达式的字符串文字。$()
$()
写入屏幕now at the beginning
并且不返回任何内容"abc"
"abc"
已写入屏幕now at the beginningabc
这不符合你的建议:
"abc $(write-host 'hi')"
"hiabc"