通过PowerShell将多色文本居中
我试图在窗口中居中显示文本;但是,文本是多色的。例如,“文件夹:”为白色,“C:\Temp”为红色。无论窗口有多大或多小,窗口的中心将是“Folder:C:\Temp”,但单词“Folder:”将为白色,“C:\Temp”将为红色 我知道如何使整个文本居中,只要是一种颜色 我的代码:通过PowerShell将多色文本居中,powershell,colors,Powershell,Colors,我试图在窗口中居中显示文本;但是,文本是多色的。例如,“文件夹:”为白色,“C:\Temp”为红色。无论窗口有多大或多小,窗口的中心将是“Folder:C:\Temp”,但单词“Folder:”将为白色,“C:\Temp”将为红色 我知道如何使整个文本居中,只要是一种颜色 我的代码: $Path = "C:\Temp" Function Write-A{ param($message) Write-Host ("{0}.{1}" -f * (([Math]::Max(0, $Host.UI.
$Path = "C:\Temp"
Function Write-A{
param($message) Write-Host ("{0}.{1}" -f * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / 2) - [Math}::Floor($message.Length / 2)))), $message) -ForegroundColor DarkGray
}
Write-A "Folder: $Path"
以文本为中心;然而,它都是一种颜色。有什么建议吗?如果您想使用本机PS,则需要使用两个单独的调用来编写主机以实现此目的
$Path = "C:\Temp"
Function Write-A
{
param($message)
Write-Host -NoNewLine ("{0}{1}" -f (' ' * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / 2) - [Math]::Floor($Message.Length / 2)))), "Folder: ") -ForegroundColor white
Write-Host -NoNewLine $message -ForegroundColor red
}
Write-A "$Path"
幸运的是,使用书写颜色,这实际上变得非常简单:
我还没有弄清楚如何使用它来居中文本,但我相信这是可能的。如果您想使用本机PS,您需要使用两个单独的调用来编写主机来实现这一点
$Path = "C:\Temp"
Function Write-A
{
param($message)
Write-Host -NoNewLine ("{0}{1}" -f (' ' * (([Math]::Max(0, $Host.UI.RawUI.BufferSize.Width / 2) - [Math]::Floor($Message.Length / 2)))), "Folder: ") -ForegroundColor white
Write-Host -NoNewLine $message -ForegroundColor red
}
Write-A "$Path"
幸运的是,使用书写颜色,这实际上变得非常简单:
我还没有弄明白如何用它来居中文本,但我相信这是可能的