PSColor icon indicating copy to clipboard operation
PSColor copied to clipboard

Provides simple color highlighting for some PowerShell output

PSColor

Provides color highlighting for some basic PowerShell output. It currently rewrites "Out-Default" to colorize:

  • FileInfo & DirectoryInfo objects (Get-ChildItem, dir, ls etc.)
  • ServiceController objects (Get-Service)
  • MatchInfo objects (Select-String etc.)

Installation

The easiest way to install, by far, is to use PsGet. Once PsGet is installed you can simply run Install-Module PSColor.

Alternativly, you can download the file PSColor.zip and extract it to a folder named PSColor in any of your PowerShell module paths. (Run $env:PSModulePath to see your paths.)

If you want PSColor to be ran automatically you can add Import-Module PSColor to your PowerShell Profile. To locate your profile, run $profile

Configuration

You can configure PSColor by overriding the values of colors, patterns etc. Configurations should be added after Import-Module PSColor in your PowerShell profile. The default configuration looks like:

$global:PSColor = @{
    File = @{
        Default    = @{ Color = 'White' }
        Directory  = @{ Color = 'Cyan'}
        Hidden     = @{ Color = 'DarkGray'; Pattern = '^\.' } 
        Code       = @{ Color = 'Magenta'; Pattern = '\.(java|c|cpp|cs|js|css|html)$' }
        Executable = @{ Color = 'Red'; Pattern = '\.(exe|bat|cmd|py|pl|ps1|psm1|vbs|rb|reg)$' }
        Text       = @{ Color = 'Yellow'; Pattern = '\.(txt|cfg|conf|ini|csv|log|config|xml|yml|md|markdown)$' }
        Compressed = @{ Color = 'Green'; Pattern = '\.(zip|tar|gz|rar|jar|war)$' }
    }
    Service = @{
        Default = @{ Color = 'White' }
        Running = @{ Color = 'DarkGreen' }
        Stopped = @{ Color = 'DarkRed' }     
    }
    Match = @{
        Default    = @{ Color = 'White' }
        Path       = @{ Color = 'Cyan'}
        LineNumber = @{ Color = 'Yellow' }
        Line       = @{ Color = 'White' }
    }
	NoMatch = @{
        Default    = @{ Color = 'White' }
        Path       = @{ Color = 'Cyan'}
        LineNumber = @{ Color = 'Yellow' }
        Line       = @{ Color = 'White' }
    }
}

E.g. if you would like to override the red color for Executables, in favour of blue; you could add the following to your PowerShell profile:

$global:PSColor.File.Executable.Color = 'Blue'