Custom PowerShell prompt

In mijn aangepaste PowerShell  prompt zitten 2 elementen welke super handig zijn in dagelijks gebruik

1. De computernaam

Doordat ik dagelijks op zoveel verschillende computers werk,  is  het soms lastig om te herinneren op welke computer ik aan het werken ben. En terwijl ik vroeger in DOS wel eens  “Set Comp” typte of in PowerShell “ls env:computername” is het toch aangenamer dat dit nu steeds gewoon op het scherm staat.

2. De “dubbele” – commando regel

Toch zeker bij PowerShell kunnen de commando’s een serieuze lengte krijgen.  Door de historiek, computername en huidige directory op een aparte lijn te plaatsen, hou ik een volledige regel over voor commando’s waardoor er minder “line wraps “ plaats vinden.

De prompt ziet er alsvolgt uit:

1. Nummer opdracht regel. Handig als je regelmatig met Invoke-History voorgaande commando’s terug wil oproepen
2. Computernaam
3. Huidige directory
4. Commando regel van begin tot einde

The code looks as follows:

function prompt
{
 $cdelim = [ConsoleColor]::DarkCyan
 $chost = [ConsoleColor]::Green
 $cloc = [ConsoleColor]::Cyan

 $num=(Get-History -count 1).id+1
 $MyHost=([net.dns]::GetHostName())
 write-host "[$num] e$([char]0x0A7) " -n -f $cloc
 write-host ([net.dns]::GetHostName()) -n -f $chost
 write-host ' {' -n -f $cdelim
 Write-Host (Get-Location).path -n -f $cloc
 Write-Host '} ' -n -f $cdelim
 " " + [System.Environment]::NewLine + ">".PadLeft((get-location -stack).Count + 1, "+")
}