PowerShell
PowerShell
Note
PowerShell + Oh My Posh 美化
PowerShell 获取当前文件夹名称 仅获取当前文件夹名
1 |
|
Powershell获取当前时间
参考 PowerShell使用Get-Date获取日期和时间
在PowerShell中直接调用Get-Date
,可以返回当前的日期和时间,包括年、月、日、时、分、秒。
1 |
|
使用-Format
参数来获取Get-Date
中的年、月、日、时、分、秒。
1 |
|
1 |
|
Powershell ANSI颜色
参考:
了解 ANSI 转义码的 color 设置
ANSI转义代码
To use one of the ANSI escape codes, we need a literal ESC character. This is octal 033, or decimal 27. In Bash, you would use
"\033"
or"\e"
; There’s no direct equivalent sequence in PowerShell but you can instead embed an expression:"$([char]27)"
PowerShell 中没有直接等效的序列,但您可以改为嵌入一个表达式:
"$([char]27)"
,也就是说要将\e
修改为$([char]27)
例如
\e[32;1m text \e[0m
修改为$([char]27)[32;1m text $([char]27)[0m
ANSI Escape code编码中有专门控制字符颜色的控制符,例如:
1 |
|
\e
代表开始ANSI Escape code[
代表转义序列开始符 CSI,Control Sequence Introducer37;44;4;1
代表以;
分隔的文本样式控制符,其中 37 代表文本前景色为白色,44代表背景为蓝色,3代表斜体,1代表加粗,;
的数量不做限制m
代表结束控制符序列
常用文本样式控制符
代码 | 作用 | 备注 |
---|---|---|
0 | 重置/正常 | 关闭所有属性。 |
1 | 粗体或增加强度 | |
2 | 弱化(降低强度) | 未广泛支持。 |
3 | 斜体 | 未广泛支持。有时视为反相显示。 |
4 | 下划线 | |
5 | 缓慢闪烁 | 低于每分钟150次。 |
6 | 快速闪烁 | MS-DOS ANSI.SYS;每分钟150以上;未广泛支持。 |
7 | 反显 | 前景色与背景色交换。 |
8 | 隐藏 | 未广泛支持。 |
9 | 划除 | 字符清晰,但标记为删除。未广泛支持。 |
10 | 主要(默认)字体 | |
11–19 | 替代字体 | 选择替代字体 |
20 | 尖角体 | 几乎无支持。 |
21 | 关闭粗体或双下划线 | 关闭粗体未广泛支持;双下划线几乎无支持。 |
22 | 正常颜色或强度 | 不强不弱。 |
23 | 非斜体、非尖角体 | |
24 | 关闭下划线 | 去掉单双下划线。 |
25 | 关闭闪烁 | |
27 | 关闭反显 | |
28 | 关闭隐藏 | |
29 | 关闭划除 | |
30–37 | 设置前景色 | 参见下面的颜色表。 |
38 | 设置前景色 | 下一个参数是5;n或2;r;g;b,见下。 |
39 | 默认前景色 | 由具体实现定义(按照标准)。 |
40–47 | 设置背景色 | 参见下面的颜色表。 |
48 | 设置背景色 | 下一个参数是5;n或2;r;g;b,见下。 |
49 | 默认背景色 | 由具体实现定义(按照标准)。 |
51 | Framed | |
52 | Encircled | |
53 | 上划线 | |
54 | Not framed or encircled | |
55 | 关闭上划线 | |
60 | 表意文字下划线或右边线 | 几乎无支持。 |
61 | 表意文字双下划线或双右边线 | |
62 | 表意文字上划线或左边线 | |
63 | 表意文字双上划线或双左边线 | |
64 | 表意文字着重标志 | |
65 | 表意文字属性关闭 | 重置60–64的所有效果。 |
90–97 | 设置明亮的前景色 | aixterm(非标准)。 |
100–107 | 设置明亮的背景色 | aixterm(非标准)。 |
颜色对照表
Powershell 修改提示符的文字内容和颜色
参考: 为 Windows PowerShell 设置 User Alias (命令别名)
首先我们先找到Powershell的配置文件的路径, 我们输入命令
echo $profile
就能显示.如果这个文件不存在, 我们输入命令
notepad $Profile
或者code $Profile
去新建一个文件.Powershell 有一个特殊的函数:
prompt
函数,这个函数规定了提示符的内容和外观。我们可以利用下面的命令可以查看当前使用的
prompt
函数的内容:1
(Get-Command Prompt).ScriptBlock
通过
prompt
函数的返回值我们就能自定义提示符。1
2
3
4
5function prompt {
"$([char]27)[32m" + $(Get-Date -Format HH:mm:ss) + "$([char]27)[0m" +
"$([char]27)[95m" + $((get-item .).name) + "$([char]27)[0m" +
"$([char]27)[33m>$([char]27)[0m"
}第一行
Get-Date
获取当前系统的时间,-Format
格式化使用HH:mm:ss
的格式, 前后使用了ANSI颜色转义将前景色设置为深绿色第二行
(get-item .).name
获取了当前文件夹的名称, 并设置前景色为深紫色第三行 输出一个深黄色的
>
符号输入
. $Profile
命令生效。(注意这里是大小写不敏感的)
Powershell 起别名(User Alias) 命令别名
参考 为 Windows PowerShell 设置 User Alias (命令别名)
我们的思路就是将命令设置成为一个
function
, 运行这个function
执行特定的指令即可.
两个思路:
使用
New-Alias
指令, 添加到Powershell的$Profile
文件里面, 每次启动运行一次. 这个命令里面不能含有空格.1
2
3
4# 此命令创建一个名为 List 的别名来表示 Get-ChildItem cmdlet。
New-Alias -Name "List" Get-ChildItem
# 为notepad++ 设置别名 np
New-Alias -Name "np" notepad++.exe使用
function
指令, 添加到Powershell的$Profile
文件里面, 把指令当作function
的名称来调用, 这样命令可以带有空格.1
2
3
4
5
6
7# 带参数的function
function np+ {
param (
$ComputerName
)
notepad++.exe $ComputerName
}