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 脚本