Como sobrescrever o comando “get-childItem” no Powershell?

2

Posso substituir esse comando? Eu quero fazer meu próprio trabalho quando eu executar o comando "Get-ChildItem" no Powershell.

    
por jason 05.11.2014 / 04:39

1 resposta

6

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:

  1. Alias
  2. Function
  3. Cmdlet
  4. Native Windows commands
    
por 05.11.2014 / 20:30

Tags