我可以重写这个命令吗? 当我在Powershell中执行“Get-ChildItem”命令时,我想做我自己的工作。
是的,您可以重写Get-ChildItem或Powershell中的其他cmdlet。
如果在同一范围内使用相同名称的函数,则将使用您的函数。
例:
Function Get-ChildItem { [CmdletBinding()] param( # Simulate the parameters here ) # ... do stuff }
创build您自己的函数,然后为该函数创build一个别名,其名称与要覆盖的cmdlet相同。
例:
Function My-GetChildItem { [CmdletBinding()] param( # Simulate the parameters here ) # ... do stuff } New-Alias -Name 'Get-ChildItem' -Value 'My-GetChildItem' -Scope Global
这种方式很好,因为testing你的函数时不用重写内置函数就可以更容易,而且你可以控制cmdlet何时被覆盖或不在代码中。
要删除别名:
Remove-Item 'Alias:\Get-ChildItem' -Force
about_Command_Precedence列出了解释不同types命令的顺序:
如果不指定path,则Windows PowerShell在运行命令时使用以下优先顺序:
- 别号
- function
- 小命令
- 本机Windows命令