Sim, você pode substituir Get-ChildItem
ou qualquer outro cmdlet no Powershell.
Nomeie sua função como o mesmo
Se você fizer uma função com o mesmo nome no mesmo escopo, a sua será usada.
Exemplo:
Function Get-ChildItem {
[CmdletBinding()]
param(
# Simulate the parameters here
)
# ... do stuff
}
Usando aliases
Crie sua própria função e crie um alias para essa função com o mesmo nome do cmdlet que você deseja substituir.
Exemplo:
Function My-GetChildItem {
[CmdletBinding()]
param(
# Simulate the parameters here
)
# ... do stuff
}
New-Alias -Name 'Get-ChildItem' -Value 'My-GetChildItem' -Scope Global
Desta forma é legal porque é mais fácil testar sua função sem pisar na função interna, e você pode controlar quando o cmdlet é substituído ou não dentro do seu código.
Para remover o alias:
Remove-Item 'Alias:\Get-ChildItem' -Force
Conheça a precedência de comando
about_Command_Precedence lista a ordem na qual comandos de diferentes tipos são interpretados:
If you do not specify a path, Windows PowerShell uses the following precedence order when it runs commands:
- Alias
- Function
- Cmdlet
- Native Windows commands