PowerShell cmdlet参数的较短版本

Lar*_*old 4 parameters powershell alias cmdlet

根据我的研究,我不相信以下内容很容易实现,如果有的话.然而,作为最后的手段,我想我会在这里查看.

在Powershell 2.0中,我想要一种方法来将(恼人的)长参数名称减少到各种cmdlet.我想绝对控制速记版本的样子.(而不是PS使用的任何参数缩写方案的奴隶.)

所以,举例来说,我希望能够做到这样的事情:

# Command goes on this first line to alias "-ForegroundColor" to "-fg"
# Command goes on this second line to alias "-BackgroundColor" to "-bg"
Wr-te-Host -fg yellow -bg black "Parameter aliases now work just like I want."
Run Code Online (Sandbox Code Playgroud)

我最接近这个功能的是什么,以及如何?我无法使用'get-help about_parameters'找到有关参数缩写的任何内容.

谢谢!

Sha*_*evy 11

检查此脚本:Get-Parameter.ps1

dot-source it并执行以下命令,它提供了有关命令参数的丰富信息.看一下别名列,它将显示所有内置参数别名,并计算可用于参数的最短名称:

PS > Get-Parameter Write-Host


    Command: Microsoft.PowerShell.Utility/Write-Host
    Set:     Default


Name                   Aliases      Position Mandatory Pipeline ByName Provider        Type
----                   -------      -------- --------- -------- ------ --------        ----
BackgroundColor        {b}          Named    False     False    False  All             ConsoleColor
ForegroundColor        {f}          Named    False     False    False  All             ConsoleColor
NoNewline              {n}          Named    False     False    False  All             SwitchParameter
Object                 {obj}        0        False     True     False  All             Object
Separator              {s}          Named    False     False    False  All             Object
Run Code Online (Sandbox Code Playgroud)


Ryn*_*ant 9

您可以为自己的函数创建参数别名,如下所示:

function ParamAlias {
    param(
        [Alias('fg','fColor')]
        $ForegroundColor
    )

    Write-Host "$ForegroundColor" -ForegroundColor $ForegroundColor
}

ParamAlias -fg Green
ParamAlias -fColor Green
Run Code Online (Sandbox Code Playgroud)

然后,您可以将此技术与Proxy CmdLets一起使用,将您自己的别名添加到现有的CmdLets.但是,我发现在控制台中使用现有的参数别名/缩短的参数名称就足够了,你不应该在脚本中使用别名,所以我不确定这是否值得付出努力.我会选择@ Shay的回答