- Published on
Powershell script to print diff output in color
- Authors
-
-
- Name
- David Mohundro
- Bluesky
- @david.mohundro.com
-
Here is a simple script I wrote which was inspired by this post on terminal color highlighting and by ColorDiff that does essentially the same thing.
# Out-ColorDiff.ps1
Process {
if ($_) {
foreach ($line in $_) {
if ($line -match '^[<|-]') {
Write-Host -ForegroundColor red $line
}
elseif ($line -match '^[>|+]') {
Write-Host -ForegroundColor green $line
}
else {
Write-Host $line
}
}
}
}
Here is a screenshot of sample output from the script:
You can use it by piping the diff output to the script, like svn diff somefile | out-colordiff
or if you’re stuck using something like MKS, you can use si diff somefile | out-colordiff
.
Possible (and easy) additions would be to add direct parsing of a file instead of taking an argument off of the pipeline. This is all I need currently, but if you wish to add more features, feel free to leave them in the comments.