我可以使用以下脚本编写Powershell的输出:
Write-Host "Hello", "1234"
Write-Output "Hello", "2345"
该程序的输出是:
Hello 1234
Hello
2345
因此,带有逗号分隔列表的Write-Host在项之间放置一个空格。写输出在它们之间添加换行符。 5种不同的Write-xxxxxxx语句之间存在很多差异,但为什么世界上这两种语句的输出会有所不同,以及如何将写输出更改为写主机?
WTF微软?
答案 0 :(得分:3)
Write-Output
理解对象并写入管道,而Write-Host
则不会写入控制台主机。您通常不应该使用Write-Host
,除非在特殊情况下,因为这样您就会丢失Powerhsell的面向对象的接口并恢复为cmd.exe范例。
获得你想要的东西:
write-output "$('Hello', '2345')"
当您将数组放入字符串内部时,它会被$OFS
分隔符连接并分隔,默认情况下为<space>
。
为了更清楚地理解这一点,请考虑以下示例:
> write-output "hello", "world" | % { "item" }
item
item
> write-host "hello", "world" | % { "item" }
hello world