我用自己的函数覆盖现有的别名ls
。它可以工作,但是标签完成仍然显示内置Get-ChildItem
的选项,而不是我的函数中的选项。如果我更改为其他别名,它可以正常工作。
这是一个MWE:
Remove-Item alias:ls -Force
function global:Get-MyChildItems {
param ([string]$filter)
Get-ChildItem -Filter $filter
}
Set-Alias ls Get-MyChildItems
Set-Alias l Get-MyChildItems
现在我输入ls -
并按Tab键两次。您会在此处看到结果:
它与您从Get-ChildItem
获得的列表相同。
在输入l -
并按Tab键时,该选项已完成,我的功能只有-filter
。
为什么完成不同?
我使用PSVersion 5.0.10586.117。