这是我之前的问题的延续。我遵循了一些关于如何为部分单词着色的建议,但是现在我使用“非线”这种格式,管理组的列表现在都与他们自己的一行排在一起。
换句话说,它打印如下:
管理组:....描述:....管理组:....描述:....
我尝试过在不同位置使用换行符,但我不希望每个管理组之间有一个大的空白区域用户控件。我只想要列出如下:
管理组:...说明:...
(NOBREAK)
管理组:...说明:...
你能解释为什么新的行选项不起作用以及我应该采取什么样的流程?
if ($owned -eq $Null){
$owned | % {write-host "Managing Group: " -nonewline}
$owned | % {write-host "None Found " -foreground red -nonewline}
$owned | % {write-host "Group Description: " -nonewline}
$owned | % {write-host "None Provided " -foreground red }
write-host "`n"
}
elseif ($description -eq $Null){
$owned | % {write-host ("Managing Group: " + $_.name + "Group Description: ") -nonewline}
$owned | % {write-host "None Provided " -foreground red}
write-host "`n"
}
else {
$owned | % {write-host ("Managing Group: " + $_.name + "Group Description: " + $_.description - replace "`r`n", " ")}
Write-host "`n"
}
答案 0 :(得分:1)
据我所知,您说两组管理组之间的差距太大了。 我认为问题来自于使用
write-host "`n"
Write-host已经发出换行符,
"`n"
是第二个换行符,因此是大突破。
在if之后的第一个代码块中(我将这样写为$ own,假设为$ null,因此将它连接到foreach除了将$ null一次性管道化之外不会做太多事情):< / p>
if ($owned -eq $Null){
write-host "Managing Group: " -nonewline
write-host "None Found " -foreground red -nonewline
write-host "Group Description: " -nonewline
write-host "None Provided " -foreground red
}
上一个write-host
没有-nonewline
参数,因此会添加换行符。
如果重复只是检查输出将是:
Managing Group: None Found Group Description: None Provided
Managing Group: None Found Group Description: None Provided
同样的想法需要应用于elseif和else之后的其他代码块。
<强>更新强>
这可能有助于修复代码的第二部分:
elseif ($description -eq $Null){
$owned | % {
write-host ("Managing Group: " + $_.name + " Group Description: ") -nonewline
write-host "None Provided " -foreground red
}
}
else {
$owned | % {write-host ("Managing Group: " + $_.name + " Group Description: " + $_.description - replace "`r`n", " ")}
}