functions/Remove-CmdFav.ps1
function Remove-CmdFav { <# .SYNOPSIS Removes a favorite command from the cache based on the specified name. .DESCRIPTION The Remove-CmdFav function allows you to remove a favorite command from the cache based on the specified name. The favorite commands are stored in a cache, and this function removes the command line associated with the provided name. .PARAMETER Name Specifies the name of the favorite command to retrieve. This parameter is mandatory. .EXAMPLE Remove-CmdFav -Name "MyFavorite" Removes the command line associated with the favorite named "MyFavorite" from the cache. .NOTES #> [CmdletBinding()] param ( [parameter(mandatory = $true, Position = 1)] [PSFramework.TabExpansion.PsfArgumentCompleterAttribute("CmdFav.Names")] [string]$Name ) # Retrieving the favorite commands cache. Restore-CmdFav $cmdCache = Get-PSFConfigValue -FullName 'CmdFav.History' -Fallback @() # Handling the case where no favorite commands are stored. if (-not $cmdCache) { Stop-PSFFunction -Level Warning -Message "No favorite commands stored" return } # Removes the command line for the specified favorite name. $cmdCache = $cmdCache | Where-Object name -ne $Name Set-PSFConfig -Module 'CmdFav' -Name 'History' -Value ($cmdCache) -AllowDelete # -PassThru | Register-PSFConfig -Scope FileUserShared Save-CmdFav } |