自定义炫酷powershell

2023-11-13

自定义炫酷powershell(美化)

  • linux上的bash和zsh之类的命令行终端炫酷无比。
  • window上的cmd和powershell丑的不忍直视。
  • 很久之前不知参考谁的一篇文章自定义了一下,还算勉强能看得过去。重装电脑时候发现了,便记录一下。
  • 自定义代码不怎么难,谁要是有时间精力去github上专门开一个项目,肯定能收获很多 star !!

怎么使用自定义配置文件不多说了,请看本文最后面,或者官方文档

https://technet.microsoft.com/zh-cn/library/bb613488

先看效果
这里写图片描述
直接上干货

#以后要 使用 ll 而不是 ls了。
set-alias ll Get-ChildItemColor  

function prompt  
{
    # $my_path 获取当前所在目录
    $my_path = $(get-location).toString()  
    $my_pos = ($my_path).LastIndexOf("\") + 1
    # 下面的 if-else 语句用来获得文件路径的最后一个目录名
    # 比如 c:/user/xiaoming   ,  则 $my_path_tail 的内容是 xiaoming 
    # 主要为了命令行终端的提示简洁一些, 根据需要自己修改
    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 定义了终端提示格式。
    Write-Host ("[") -nonewline -foregroundcolor 'Cyan'  
    Write-Host ("Blueky") -nonewline -foregroundcolor 'Cyan'  
    Write-Host (" @ ") -nonewline -foregroundcolor 'Cyan'  
    Write-Host ("WIN10 ") -nonewline -foregroundcolor 'Cyan'  
    Write-Host ($my_path_tail) -nonewline -foregroundcolor 'Cyan'  
    Write-Host ("]#") -nonewline -foregroundcolor 'Cyan'  
    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:    blueky 
#>  
  # 这个函数用来做正则匹配,并为不同的文件配置不同的颜色。
  $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.Ra
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义炫酷powershell 的相关文章

随机推荐