27 lines
650 B
PowerShell
27 lines
650 B
PowerShell
[CmdletBinding(SupportsShouldProcess)]param()
|
|
|
|
$local:allAliases = @()
|
|
|
|
$MyAliasScope = 0
|
|
$local:_scope = 0
|
|
$local:_done = $false
|
|
do {
|
|
try {
|
|
$local:newAliases += Get-Alias -Scope $_scope |
|
|
Where-Object {
|
|
($_.Definition -match "^$MyPSScriptRoot") -or ($_.Description -match '#MyAlias')
|
|
}
|
|
if( $newAliases ) {
|
|
$allAliases += $newAliases
|
|
$MyAliasScope = $_scope;
|
|
Write-Verbose "`$MyAliasScope is now set to $MyAliasScope"
|
|
}
|
|
} catch {
|
|
Write-Verbose "catch: $($_.Exception.Message)"
|
|
$_done = $_.Exception.Message -match 'The scope .* exceeds'
|
|
}
|
|
$_scope += 1
|
|
} until ( $_done )
|
|
|
|
$allAliases
|