function Search-History { <# .SYNOPSIS Used to look for previous commands in your current or PSReadLine buffers #> [CmdletBinding()] param ( [Parameter(Mandatory = $true, Position = 0)] [string]$Find, [switch]$Interactive, [switch]$SkipMultilines, [switch]$OnlyMultilines, [switch]$SkipLongLines, [Parameter()] [string[]]$AdditionalPath ) $logLead = Get-LogLeadName if ($SkipMultilines -and $OnlyMultilines) { throw "$logLead : You can't specify both skip and only multilines" } if ($Interactive) { Get-HistoryEntries -SkipMultilines:$SkipMultilines -OnlyMultilines:$OnlyMultilines -SkipLongLines:$SkipLongLines -AdditionalPath $AdditionalPath | ? {$_ -like "*$Find*"} | Get-Unique | more } else { $found = @() $entries = (Get-HistoryEntries -SkipMultilines:$SkipMultilines -OnlyMultilines:$OnlyMultilines -SkipLongLines:$SkipLongLines -AdditionalPath $AdditionalPath) foreach ($entry in $entries) { if (($entry -join '').IndexOf($Find) -gt -1) { if ($found -notcontains $entry.Trim()) { $found += $entry.Trim() } } } return $found } } # New-Alias -Name hist -Value Search-History