How to prevent save input history that begins with a space in PowerShell?

2.2k Views Asked by At

In bash (at least in Ubuntu), it is possible not to save commands starting with a space in the history (HISTCONTROL). Is there a way to get this feature in Powershell?

1

There are 1 best solutions below

3
On BEST ANSWER

Since at least PowerShell 5.1 you can use Set-PSReadlineOption's -AddToHistoryHandler to validate if a command should be added to the history with a custom function.

-AddToHistoryHandler Specifies a ScriptBlock that controls which commands get added to PSReadLine history.

The ScriptBlock receives the command line as input. If the ScriptBlock returns $True, the command line is added to the history.

And for completeness, here is a code sample you can add to your $PROFILE.CurrentUserAllHosts

Set-PSReadLineOption -AddToHistoryHandler {
    param($command)
    if ($command -like ' *') {
        return $false
    }
    # Add any other checks you want
    return $true
}