自定义PowerShell提示符并着色
系列 - Customize Prompt of Shell
目录
1 ANSI转义字符
和 Bash 类似, 要控制显示格式, 须使用 SGR 转义序列: ESC[<n>m
。简单理解, 以 ESC[
开头, 中间 <n>
处设置颜色, 以 m
结尾。
颜色代码参考微软官方文档 Text Formatting 。
2 PowerShell 7.x
支持以 [char]27
和 `e
表示 ESC
。
对于 Prompt 的多行显示支持正常。
2.1 代码
参考 这里 设置永久配置 $PROFILE
, 将下面的代码写入, 使其在打开 PowerShell 时可以被预加载。
|
|
2.2 解释
- Get-Date 输出当前日期和时间,
Get-Date -Format "HH:mm:ss"
指定输出格式 if($principal.IsInRole($adminRole)
以及$identity
,$principal
,$adminRole
用于判断当前用户是否为管理员- Get-Location 输出当前位置
2.3 效果
普通用户:
20:34:50 zhyoch@Windows D:\Desktop$
管理员账户:
20:34:50 admin@Windows D:\Desktop#
3 PowerShell 5.x
支持以 [char]27
表示 ESC
, 不以支持 `e
表示。
对于 Prompt 的多行显示支持存在 BUG , 在更高版本中此问题已修复。
3.1 代码
参考 这里 设置永久配置 $PROFILE
, 将下面的代码写入, 使其在打开 PowerShell 时可以被预加载。
|
|
3.2 效果
普通用户:
20:34:50 zhyoch@Windows D:\Desktop $
管理员账户:
20:34:50 admin@Windows D:\Desktop #
顺便一提
PowerShell 后跟启动参数
-nologo
, CMD 后跟启动参数 /k
, 可以取消显示顶端的版本和版权信息。