PowerShell - 与现有别名的 &string 冲突

PowerShell - &string Collision with Existing Alias

代码:

function start() {
  # do something
}

&"start"

如何避免 & 首先找到 Start-Process 别名?有没有办法在我的脚本的生命周期中删除启动别名?更改函数的名称不是一个选项。

放:

Remove-Item alias:\start -Force

在脚本顶部为 运行 删除它,或将其添加到系统 profile.ps1 以永久删除它(每次 powershell 启动时)

您可以明确告诉它您要调用该函数,而不是别名。

function start() {
  # do something
  Write-Output "It Worked"
}

&(gi function:\start)

任何参数都可以像往常一样附加到调用的末尾。

function start() {
    Param(
        [int] $toout
    )
  # do something
  Write-Output "It Worked: $($toout + 5): See!"
}

&(gi function:\start) 5

这也有效,类似于第一个答案:

function start(){
    Write-Host "FOO"
}

&(get-command -CommandType Function -Name start)