自定义微软powershell(脚本方法)

Posted ir77

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义微软powershell(脚本方法)相关的知识,希望对你有一定的参考价值。

内容并不是借助第三方脚本实现,是讲的如何DIY PowerShell

技术图片技术图片

首先,更加美观的Windows Terminal

唐铭:Windows Terminal 终端入门?zhuanlan.zhihu.com技术图片

修改PowerShell的显示效果,是通过修改PowerShell启动时默认加载的一个脚本来实现的,也就是

技术图片

因为PowerShell默认禁止运行脚本,需要首先开启权限,管理员模式运行PowerShell

技术图片

然后输入命令,并输入Y确认

set-ExecutionPolicy RemoteSigned

技术图片

接着

安装了visual stdio code并且添加了环境变量的可以直接在PowerShell中接着输入(推荐)

code $profile

没安装visual stdio code的普通用户则在PowerShell中输入

$profile

技术图片

然后根据显示的路径去手动新建这个文件,最后用记事本打开

技术图片

然后将下面的代码粘贴进配置文件中并ctrl+s保存

cls  #清除微软广告

$path = $pwd.path
if ( $path.split("")[-1] -eq "System32" ) {
    # change default path to desktop
    $desktop = "C:Users" + $env:UserName + "Desktop"
    cd $desktop
}

Set-PSReadLineOption -Colors @{
    Command             = "#e5c07b"
    Number              = "#cdd4d4"
    Member              = "#e06c75"
    Operator            = "#e06c75"
    Type                = "#78b6e9"
    Variable            = "#78b6e9"
    Parameter           = "#e06c75"  #命令行参数颜色
    ContinuationPrompt  = "#e06c75"
    Default             = "#cdd4d4"
    Emphasis            = "#e06c75"
    #Error
    Selection           = "#cdd4d4"
    Comment             = "#cdd4d4"
    Keyword             = "#e06c75"
    String              = "#78b6e9"
}

function prompt
{
    #Write-Host("$pwd>")
    $path = $pwd.path
    if ( -not $path.EndsWith("") ) {
        "" + $path.split("")[-1] + " λ "
    }
    else {
        "" + $path.split("")[0] + " λ "
    }
}

其中,cls指令是为了清除PowerShell打开时的微软广告

如果打开时当前路径是System32这个系统文件夹,会切换到桌面

Set-PSReadLineOptionPowerShell命令的配色,参数具体含义以及如何修改参考微软官方文档

Set-PSReadLineOption (PSReadLine)?docs.microsoft.com技术图片

function prompt函数是PowerShell显示命令头部调用的函数,功能是显示下面画线部分,使用的PowerShell脚本语法编写

技术图片

如果要输出特殊字符比如λ,需要将文件编码改成GB2312或者GBK,否则会乱码,

技术图片


如果是希望实现类似于下图的git bash类似的效果,即多输出一行路径,用户或者时间等其他信息

技术图片

直接取消掉我注释掉的Write-Host("$pwd"),然后将参数改为你理想的格式

图片中出现命令行翻译,看

唐铭:windows / vscode 命令行翻译?zhuanlan.zhihu.com技术图片

以上是关于自定义微软powershell(脚本方法)的主要内容,如果未能解决你的问题,请参考以下文章

用于本地文件的 Azure 自定义脚本扩展 CLI/Powershell

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

通过 powershell 脚本避免微软登录弹出窗口

微软宣布全新命令行+脚本工具:PowerShell 7

powershell (进行中)PowerShell脚本我用来以相同的方式自定义我的机器,用于隐私,搜索,UI等。