如何在PowerShell中删除或替换内置别名?

28

Powershell中包含了一个名为diff的内置别名,代表Compare-Object命令。这对我来说非常烦人,因为我习惯于使用Unix的diff命令。

有没有一种方法可以删除内置的diff别名,或者覆盖它?

我尝试过:

  • del alias:diff - 出现错误“无法删除别名,因为别名diff是常量或只读”
  • set-alias diff diff.exe - 出现与上述类似的错误
  • function diff { diff.exe $args } - 别名优先级更高

如何访问“真正”的diff(而无需记住不同的名称)?

如果有影响的话,这是Powershell 3。我还没有在版本4中尝试过,虽然版本4也有一个wget别名,但不像diff那样,我可以删除它...

3个回答

53

尝试强制删除。

del alias:diff -Force

1
谢谢!我真的希望这个在MS Powershell文档中更明显地被知道!或者至少由Powershell建议。 - Ian Smith
1
注意:一定要检查命令是否实际上是一个别名。在较新版本的PowerShell中,Get-Command help将显示help实际上是一个函数,尽管它的行为类似于Get-Help的别名。可以使用Test-Path Function:\help/Remove-Item Function:\help来处理函数。 - PotatoFarmer

2
对于Windows 10 1803版本的17134构建,即使使用-Force参数,它仅会删除当前窗口的一个常量别名。

1
在某些情况下,需要使用-option
Set-Alias 'type' 'read-host' -force -option 'Constant','AllScope'

Win10 19xxx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接