[CmdletBinding(SupportsShouldProcess)]param() $local:myAliases = [ordered]@{} $myAliases.sudo = 'Invoke-MySudo' $myAliases.vi = 'Edit-TextFile' $myAliases.vim = 'Edit-TextFile' $myAliases.nvim = 'Edit-TextFile' $myAliases.nvim = 'Edit-TextFile' ####################################################################### $local:IsVerbose = [bool]($PSBoundParameters['Verbose']) $local:MyAliasScope = 1 $local:oldAliases = Get-MyAliases $oldAliases = Get-Alias -Scope $MyAliasScope | Where-Object Name -in $($oldAliases.Name + $myAliases.Keys) if( $oldAliases -and $IsVerbose ) { Write-Verbose "Removing: $($oldAliases.Name -join ', ')" } $oldAliases | Remove-Alias -Scope $MyAliasScope Get-ChildItem (Join-Path $MyPSScrtipRoot '*.ps1') | ForEach-Object { Set-Alias $($_.BaseName) $_.FullName -Scope $MyAliasScope } foreach( $local:alias in $myAliases.Keys ) { Set-Alias -Name $alias -Value $myAliases[$alias] -Description '#MyAlias' -Scope $MyAliasScope }