【问题标题】:Powershell: Have working Aliases for longer commands with parametersPowershell:为带有参数的更长命令提供工作别名
【发布时间】:2021-02-17 21:29:31
【问题描述】:

我正在尝试在我的 profile.ps1 文件中编写一些 PowerShell 别名。问题是我无法让带有可变数量参数的命令正常工作。

例如,我想要一个将“kg”链接到“kubectl get”的别名,它后面是一个资源,有时是一个选项。所以 "kg pods -A" 和 "kg pod" 都应该在后面起作用。

根据这个post,我需要定义一个可以在下面看到的函数,我的问题是它忽略了第一个之后的所有参数。所以“kg pods -A”返回“kg pods”的结果。 这个post 解释了如何将多个参数传递给一个函数,但由于某种原因它不起作用。 (如果相关,我在 Cmder 中使用 Powershell)。 难道是“-”引起了问题?

“profile.ps1”的相关部分:

Function get ($restOfLine, $restOfLine2) { kubectl get $restOfLine $restOfLine2}
Set-Alias kg get

【问题讨论】:

    标签: powershell


    【解决方案1】:

    只要您在函数中显式声明参数,PowerShell 就会尝试通过解析命令调用表达式并将任何以 - 开头的序列视为参数,将输入参数绑定到这些参数名字。

    去掉参数,直接传$args,避免这种干扰:

    function get { kubectl get @args }
    Set-Alias kg get
    

    kg post -A 现在将按原样将post-A 传递给kubectl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-25
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多