PowerShell

PowerShell

Note

PowerShell + Oh My Posh 美化

参考 PowerShell美化

PowerShell 获取当前文件夹名称 仅获取当前文件夹名

1
(get-item .).name

Powershell获取当前时间

参考 PowerShell使用Get-Date获取日期和时间

在PowerShell中直接调用Get-Date,可以返回当前的日期和时间,包括年、月、日、时、分、秒。

1
2
PS > Get-Date
2022121921:32:28

使用-Format参数来获取Get-Date中的年、月、日、时、分、秒。

1
2
3
4
5
6
7
yyyy 年
M 月
d 日
h 小时(12小时制)
H 小时(24小时制)
m 分钟
s 秒
1
2
PS > Get-Date -Format HH:mm:ss
21:34:11

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[37;44;3;1m
  • \e 代表开始ANSI Escape code
  • [ 代表转义序列开始符 CSI,Control Sequence Introducer
  • 37;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默认背景色由具体实现定义(按照标准)。
51Framed
52Encircled
53上划线
54Not framed or encircled
55关闭上划线
60表意文字下划线或右边线几乎无支持。
61表意文字双下划线或双右边线
62表意文字上划线或左边线
63表意文字双上划线或双左边线
64表意文字着重标志
65表意文字属性关闭重置60–64的所有效果。
90–97设置明亮的前景色aixterm(非标准)。
100–107设置明亮的背景色aixterm(非标准)。

颜色对照表

3bit-color

Powershell 修改提示符的文字内容和颜色

参考: Powershell 修改提示符的文字内容和颜色

参考: 为 Windows PowerShell 设置 User Alias (命令别名)

  1. 首先我们先找到Powershell的配置文件的路径, 我们输入命令echo $profile就能显示.

  2. 如果这个文件不存在, 我们输入命令notepad $Profile或者code $Profile去新建一个文件.

  3. Powershell 有一个特殊的函数: prompt 函数,这个函数规定了提示符的内容和外观。

    我们可以利用下面的命令可以查看当前使用的 prompt 函数的内容:

    1
    (Get-Command Prompt).ScriptBlock
  4. 通过 prompt 函数的返回值我们就能自定义提示符。

    1
    2
    3
    4
    5
    function 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获取了当前文件夹的名称, 并设置前景色为深紫色

    第三行 输出一个深黄色的>符号

  5. 输入 . $Profile 命令生效。(注意这里是大小写不敏感的)

Powershell 起别名(User Alias) 命令别名

参考 为 Windows PowerShell 设置 User Alias (命令别名)

我们的思路就是将命令设置成为一个function, 运行这个function执行特定的指令即可.

两个思路:

  1. 使用New-Alias指令, 添加到Powershell的$Profile文件里面, 每次启动运行一次. 这个命令里面不能含有空格.

    参考 Microsoft的Powershell文档

    1
    2
    3
    4
    # 此命令创建一个名为 List 的别名来表示 Get-ChildItem cmdlet。
    New-Alias -Name "List" Get-ChildItem
    # 为notepad++ 设置别名 np
    New-Alias -Name "np" notepad++.exe
  2. 使用function指令, 添加到Powershell的$Profile文件里面, 把指令当作function的名称来调用, 这样命令可以带有空格.

    1
    2
    3
    4
    5
    6
    7
    # 带参数的function
    function np+ {
    param (
    $ComputerName
    )
    notepad++.exe $ComputerName
    }

PowerShell
https://www.oikiou.top/2022/a2c49dae/
作者
Oikiou
发布于
2022年12月19日
许可协议