powershell PowerShell函数用于扩展ISE和文件的别名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell PowerShell函数用于扩展ISE和文件的别名相关的知识,希望对你有一定的参考价值。

function Expand-Alias{
    [CmdletBinding(DefaultParameterSetName = 'Text')]
    param(
        [Parameter(Mandatory=$false, Position=0, ParameterSetName = 'Text')]
        $code = $psISE.CurrentFile.Editor.Text,
        [Parameter(Mandatory=$true, ParameterSetName = 'Path')]
        [ValidateScript({
            if (-not (Test-Path -PathType Leaf -LiteralPath $_ )) {
                throw "Path '$_' does not exist. Please provide the path to an existing File."
            }
            $true
        })]
        $path
    )
    $htAliases = Get-Alias | Group-Object -Property Name -AsHashTable -AsString
    $errors = $null
    if ($PSCmdlet.ParameterSetName -eq 'Path'){
        $code = Get-Content $path -Raw
    }
    [System.Management.Automation.PSParser]::Tokenize($code, [ref]$errors) |
        Where-Object { $_.Type -eq 'Command' } |
        Sort-Object { $_.Start } -Descending |
        ForEach-Object{
            $command = $_.Content
            if ($htAliases.ContainsKey($command)){
                $alias = $htAliases."$command" | Select-Object *
                $definition = $alias.ResolvedCommandName
                if ($PSCmdlet.ParameterSetName -eq 'Path'){
                    #replace the alias within the string
                    $code = $code.Remove($_.Start, $_.Content.Length).Insert( $_.Start, $definition)
                }
                else{
                    #replace the alias inside the ISE
                    $psISE.CurrentFile.Editor.Select($_.StartLine, $_.StartColumn, $_.EndLine, $_.EndColumn)
                    $psISE.CurrentFile.Editor.InsertText($definition)
                }
            }
        }
        if ($PSCmdlet.ParameterSetName -eq 'Path'){
            Set-Content $path -Value $code
        }
}

以上是关于powershell PowerShell函数用于扩展ISE和文件的别名的主要内容,如果未能解决你的问题,请参考以下文章

powershell Powershell函数用于计算目录中所有文本文件中的所有行或行

powershell Powershell函数用于在库中的SharePoint中创建文件夹和子文件夹

powershell PowerShell脚本,用于获取服务器场中所选用户的所有权限的列表。您还可以使用函数来获取烫发

用于导出sprint PBI的Powershell函数/脚本[关闭]

用于销毁资源的 Powershell 动词

用于验证 sql 语法错误的 Powershell 脚本