2017-04-20 64 views
3

当我在Foreach-Object内使用Write-Host时,输出中会出现不必要的空间。使用写主机时输出中不需要的空间

write-host "http://contoso.com/personal/"$_.ADUserName 

输出:

http://contoso.com/personal/ john.doe 

我怎样才能约翰之前删除的空间?修剪不起作用,因为没有空间$_.ADUserName

+3

直写'主持人“http://contoso.com/persona l/$($ _。ADUserName)“' –

回答

6

发生这种情况是因为Write-Host正在考虑您的常量字符串,而您的对象是两个单独的参数 - 您实际上并未将这些字符串连接在一起,重新叫它。与其说这是这样的,实际上是在连接字符串:

write-host "http://contoso.com/personal/$($_.ADUserName)" 

write-host ("http://contoso.com/personal/" + $_.ADUserName) 

write-host ("http://contoso.com/personal/{0}" -f $_.ADUserName) 
0

只要做到这一点,而不write-host

"http://contoso.com/personal/{0}" -f $_.ADUserName 
+0

尽管不应该养成使用写主机的习惯,但我会同意,这种说法并不等同。相反,这个语句相当于使用写输出而不是写主机。 –