首页 > 解决方案 > Powershell:尝试将背景/前景颜色更改为文本输出(无写入主机)

问题描述

正如标题所示,我正在尝试更改由以下方式输出的文本的前/背景颜色:{$_.Name +" Drive: Used: "+"{0:N2}" -f($_.Used/1gb) + " Free: "+"{0:N2}" -f($_.Free/1gb) + " Total: "+"{0:N2}" -f(($_.used/1gb) + ($_.Free/1gb));

Drive,Used,Free,Total text output 在哪里我想添加一些前景和背景,但我不知道该怎么做。

我正在尝试从互联网上戳脚本,以便使用Powershell学习一些新东西。

完整脚本:Get-PSDrive | Where-Object{$_.Free -gt 1} | ForEach-Object{$count = 0 ; "`n" }{$_.Name + " Drive: Used: " +"{0:N2}" -f($_.Used/1gb) + " Free: "+"{0:N2}" -f($_.Free/1gb) + " Total: "+"{0:N2}" -f(($_.used/1gb) + ($_.Free/1gb)); $count = $count + $_.Free;}{Write-Host "Total Free Space: " ("{0:N2}" -f($count/1gb)) -ForegroundColor White -BackgroundColor Black}

标签: powershellstartup

解决方案


Windows 10 + PowerShell 5.1 及更高版本默认支持 ANSI 转义序列。

ANSI 转义码 #DOS 和 Windows - 维基百科

并且您需要[esc]在 PowerShell 中使用特殊字符。

# PowerShell version 5
"$([char]0x1b)[30;41m YOUR_TEXT_HERE $([char]0x1b)[0m"

# PowerShell version 6+
"`e[30;41m YOUR_TEXT_HERE `e[0m"

参考


推荐阅读