请注意:
C:\> Get-Date
Tuesday, February 4, 2020 5:50:55 PM
C:\> Date
Tuesday, February 4, 2020 5:50:57 PM
C:\> Get-Content C:\Users\mkharitonov\.bashrc
alias ls='ls --color=auto -alhX'
alias npp="C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe"
C:\> Content C:\Users\mkharitonov\.bashrc
alias ls='ls --color=auto -alhX'
alias npp="C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe"
C:\>
我不想要这种行为。一个人怎么能控制呢?
从 PowerShell Core 7.0.0-rc.2 开始,您无法阻止这种行为,这是(代价高昂的)设计:Get
是隐含的默认动词,因此提交Content
最终会调用Get-Content
,例如 - 除非显式命名的命令Content
也存在。
PowerShell 团队的一名成员公开考虑删除此功能,因为它在性能方面既模糊又昂贵(除了未完全实现):
请注意,此命令查找行为不限于 cmdlet - 它适用于任何命令,包括本机命令。
它也非常昂贵 - 我们首先正常搜索(包括 PATH),如果失败,我们将重复搜索 prepending
Get-
。就个人而言,我宁愿删除这个错误特征,也不愿将其正式化。我们可以为
$ExecutionContext.InvokeCommand.CommandNotFoundAction
那些不愿意修复依赖于这个奇怪功能的旧脚本的人提供一个处理程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句