使用Write-Host时输出中不必要的空间

Pet*_*nar 3 powershell

当我Write-Host在a中使用时Foreach-Object,我在输出中得到一个不必要的空间.

write-host "http://contoso.com/personal/"$_.ADUserName
Run Code Online (Sandbox Code Playgroud)

输出:

http://contoso.com/personal/ john.doe
Run Code Online (Sandbox Code Playgroud)

如何在约翰之前移除空间?修剪无效,因为没有空间$_.ADUserName

Dav*_*kle 8

发生这种情况是因为Write-Host正在考虑你的常量字符串,你的对象是两个独立的参数 - 你实际上并没有按照你调用它的方式将字符串连接在一起.而不是以这种方式调用它,实际上连接字符串:

write-host "http://contoso.com/personal/$($_.ADUserName)"
Run Code Online (Sandbox Code Playgroud)

要么

write-host ("http://contoso.com/personal/" + $_.ADUserName)
Run Code Online (Sandbox Code Playgroud)

要么

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