美文网首页
windows修改PowderShell前缀颜色,可在vscod

windows修改PowderShell前缀颜色,可在vscod

作者: 辛巴达 | 来源:发表于2020-11-02 17:15 被阅读0次

修改powershell颜色

默认的powershell启动时加载配置文件可以在以下路径中寻找,如没有 PowerShell_profile.ps1 或者 Profile.ps1 在相应的路径下新建即可。

$Home:当前使用者的主目录
$PsHome:存放 Windows PowerShell 的目录

# 当前用户,所有主机有效
$Home\Documents\Profile.ps1
# 当前用户,当前主机有效
$Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
# 所有用户,当前主机有效
$PsHome\Microsoft.PowerShell_profile.ps1
# 所有用户,所有主机有效
$PsHome\Profile.ps1
  • 文件内容如下
set-alias ll         Get-ChildItemColor

function prompt
{
    $my_path = $(get-location).toString()
    $my_pos = ($my_path).LastIndexOf("\") + 1
    if( $my_pos -eq ($my_path).Length ) { $my_path_tail = $my_path }
    else { $my_path_tail = ($my_path).SubString( $my_pos, ($my_path).Length - $my_pos ) }
    Write-Host ("♠ ") -nonewline -foregroundcolor 'DarkCyan'
    Write-Host ($my_path_tail) -nonewline -foregroundcolor 'DarkCyan'
    Write-Host (" $") -nonewline -foregroundcolor 'Magenta'
    return " "
}

function Get-ChildItemColor {
<#
.Synopsis
  Returns childitems with colors by type.
.Description
  This function wraps Get-ChildItem and tries to output the results
  color-coded by type:
  Directories - Cyan
  Compressed - Red
  Executables - Green
  Text Files - Gray
  Image Files - Magenta
  Others - Gray
.ReturnValue
  All objects returned by Get-ChildItem are passed down the pipeline
  unmodified.
.Notes
  NAME:      Get-ChildItemColor
  AUTHOR:    Tojo2000 <tojo2000@tojo2000.com>
#>
  $regex_opts = ([System.Text.RegularExpressions.RegexOptions]::IgnoreCase `
      -bor [System.Text.RegularExpressions.RegexOptions]::Compiled)
 
  $fore = $Host.UI.RawUI.ForegroundColor
  $compressed = New-Object System.Text.RegularExpressions.Regex(\.(zip|tar|gz|rar|7z|tgz|bz2),$regex_opts)
  $executable = New-Object System.Text.RegularExpressions.Regex(\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg|sh), $regex_opts)
  $text_files = New-Object System.Text.RegularExpressions.Regex(\.(txt|cfg|conf|ini|csv|log), $regex_opts)
  $image_files = New-Object System.Text.RegularExpressions.Regex(\.(bmp|jpg|png|gif|jpeg), $regex_opts)
 
  Invoke-Expression ("Get-ChildItem $args") |
    %{
      if ($_.GetType().Name -eq 'DirectoryInfo') { $Host.UI.RawUI.ForegroundColor = 'Cyan' }
      elseif ($compressed.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Red' }
      elseif ($executable.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Green' }
      elseif ($text_files.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Gray' }
      elseif ($image_files.IsMatch($_.Name)) { $Host.UI.RawUI.ForegroundColor = 'Magenta' }
      else { $Host.UI.RawUI.ForegroundColor = 'Gray' }
      echo $_
      $Host.UI.RawUI.ForegroundColor = $fore
    }
}

function Show-Color( [System.ConsoleColor] $color )
{
    $fore = $Host.UI.RawUI.ForegroundColor
    $Host.UI.RawUI.ForegroundColor = $color
    echo ($color).toString()
    $Host.UI.RawUI.ForegroundColor = $fore
}

function Show-AllColor
{
    Show-Color('Black')
    Show-Color('DarkBlue')
    Show-Color('DarkGreen')
    Show-Color('DarkCyan')
    Show-Color('DarkRed')
    Show-Color('DarkMagenta')
    Show-Color('DarkYellow')
    Show-Color('Gray')
    Show-Color('DarkGray')
    Show-Color('Blue')
    Show-Color('Green')
    Show-Color('Cyan')
    Show-Color('Red')
    Show-Color('Magenta')
    Show-Color('Yellow')
    Show-Color('White')
}

保存重启 PowderShell 即可看到效果,颜色可自己配置

效果展示

Done.

相关文章

网友评论

      本文标题:windows修改PowderShell前缀颜色,可在vscod

      本文链接:https://www.haomeiwen.com/subject/gjpmvktx.html