yod*_*ode 24 command-line windows-10 powershell-5.0
我总是在我的 linux 中提示我使用这种颜色
然后我可以在黑色命令窗口中找到我的输入。但是我们可以在我的Powershell 中制作相同的颜色吗?
Bob*_*Bob 39
您要做的是自定义提示。
PowerShell 3.0 及更新版本中的默认提示是:
function prompt
{
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
}
Run Code Online (Sandbox Code Playgroud)
现在的Windows 10支持的ANSI转义代码在其conhost,以及24位色彩的,因为1703的支持。
要使用 ANSI 转义码之一,我们需要一个文字ESC 字符。这是八进制 033 或十进制 27。在 Bash 中,您将使用"\033"或"\e"; PowerShell 中没有直接等效序列,但您可以嵌入表达式:"$([char]27)"
在 PowerShell Core 中,您可以改用"`e"转义序列。感谢 asherber 的评论。
例如,这意味着您可以使用以下转义序列将背景颜色设置为青色,代码46如下:
"$([char]27)[46m"
Run Code Online (Sandbox Code Playgroud)
可以这样使用:
echo "$([char]27)[46mColoured text"
Run Code Online (Sandbox Code Playgroud)
为了使事情更具可读性,让我们定义一个变量:
$ESC = [char]27
Run Code Online (Sandbox Code Playgroud)
所以我们可以使用:
"$ESC[46m"
Run Code Online (Sandbox Code Playgroud)
哪里$ESC是文字 ESC 字符,[定义参数列表的开始和m结束。
在命令中使用它:
echo "$ESC[46mColoured text"
Run Code Online (Sandbox Code Playgroud)
为了恢复原始颜色设置,我们改用代码0:
echo "$ESC[46mColoured text$ESC[0mUncoloured text"
Run Code Online (Sandbox Code Playgroud)
如果您对基本的 16 色调色板不满意,您可以使用完整的 24 位颜色的形式:
"$ESC[48;2;<r>;<g>;<b>m"
Run Code Online (Sandbox Code Playgroud)
哪里<r>是从0-255红色,十进制值<g>的绿色和<b>蓝色,如"$ESC[48;2;255;0;123m"
请参阅文档以获取更多信息。
事实上,这一切都直接等同于您在 bash 中所做的一切,只是您需要使用$ESC(在定义之后)而不是\eor \033。
将这些放在一起,我们可以在修改后的提示中使用 ANSI 颜色转义码来更改背景颜色:
function prompt
{
$ESC = [char]27
"$ESC[46mPS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) $ESC[0m"
}
Run Code Online (Sandbox Code Playgroud)
如果您希望这在会话中持续存在,请将其添加到您的个人资料中(如.bashrc)。您可以在 中查看您的个人资料的路径$profile。
| 归档时间: |
|
| 查看次数: |
11909 次 |
| 最近记录: |