Get-Help about_Prompts LONG DESCRIPTION The Windows PowerShell command prompt indicates that Windows PowerShell is ready to run a command:

PS C:\>

The Windows PowerShell prompt is determined by the built-in Prompt function. You can customize the prompt by creating your own Prompt function and saving it in your Windows PowerShell profile. #>





One of my biggest issues with the default prompt is that I work with a lot of nested folders and network shares. It makes the path so long because the path is in there. So I change my prompt to just show the current folder and place the full path in the tittle bar.





One other thing I do is add basic command logging. I would use transcripts, but I don't want something that verbose. So I just save my last command to a text file whenever I run it.





The last thing I so is calculate where in the history the next command will be and add that to my prompt.





Here is my prompt function:





$PSLogPath = ( "{0}{1}\Documents\WindowsPowerShell\log\{2:yyyyMMdd}-{3}.log" -f $env:HOMEDRIVE , $env:HOMEPATH , ( Get-Date ) , $PID ) Add-Content -Value "# $( Get-Date ) $env:username $env:computername " -Path $PSLogPath $( Add-Content -Value "# $( Get-Location ) " -Path $PSLogPath $(

function prompt $LastCmd = Get-History -Count 1 if ( $LastCmd ) $lastId = $LastCmd . Id Id Add-Content -Value "# $( $LastCmd . StartExecutionTime) " -Path $PSLogPath $(StartExecutionTime) Add-Content -Value " $( $LastCmd . CommandLine) " -Path $PSLogPath $(CommandLine) Add-Content -Value "" -Path $PSLogPath

$nextCommand = $lastId + 1 $currentDirectory = Split-Path ( Get-Location ) -Leaf $host . UI . RawUI . WindowTitle = Get-Location UIRawUIWindowTitle " $nextCommand PS: $currentDirectory >"

























