Convert-AliasDefinition.ps1
#requires -version 2.0 Function Convert-AliasDefinition { [cmdletBinding(DefaultParameterSetName="ToDefinition")] Param( [Parameter(Position=0,Mandatory=$True,HelpMessage="Enter a string to convert")] [string]$Text, [Parameter(ParameterSetName="ToAlias")] [switch]$ToAlias, [Parameter(ParameterSetName="ToDefinition")] [switch]$ToDefinition ) #make sure we are using the ISE if ($host.name -match "ISE") { Try { #get alias if it exists otherwise throw an exception that #will be caught if ($ToAlias) { #get alias by definition and convert to name $alias=get-alias -definition $Text -ErrorAction Stop #there might be multiples so use the first one found if ($alias -is [array]) { $replace=$alias[0].name } else { $replace=$alias.name } } else { #get alias by name and convert to definition #if the text is ?, this is a special character so #we'll just assume it is Where-Object if ($Text -eq "?") { $Replace="Where-Object" } else { $alias= Get-Alias -name $Text -ErrorAction Stop $replace=$alias.definition } } #Else ToDefinition } #close Try Catch { Write-Host "Nothing for for $text" -ForegroundColor Cyan } #make changes if an alias was found If ($replace) { #Insert the replacment $psise.currentfile.editor.insertText($replace) } } #if ISE else { Write-Warning "You must be using the PowerShell ISE" } } #end function |