Multiple foreground colors in PowerShell in one command

后端 未结 13 1891
难免孤独
难免孤独 2020-11-28 07:19

I want to output many different foreground colors with one statement.

PS C:\\> Write-Host \"Red\" -ForegroundColor Red
Red

This output i

13条回答
  •  忘掉有多难
    2020-11-28 08:02

    You could roll your own Write-Color command or something that looks for inline tokens that change the color. This is how ANSI escape sequences used to work back in the BBS days.

    But you could achieve what you want by doing:

    Write-Host "Red " -f red -nonewline; Write-Host "Blue " -f blue;
    

    Here's a simple little function that does what you asked.

    function Write-Color([String[]]$Text, [ConsoleColor[]]$Color) {
        for ($i = 0; $i -lt $Text.Length; $i++) {
            Write-Host $Text[$i] -Foreground $Color[$i] -NoNewLine
        }
        Write-Host
    }
    
    Write-Color -Text Red,White,Blue -Color Red,White,Blue
    

提交回复
热议问题