Назад | Перейти на главную страницу

Как переопределить команду «get-childItem» в Powershell?

Могу ли я отменить эту команду? Я хочу делать свою работу, когда выполняю команду Get-ChildItem в Powershell.

Да, вы можете отменить Get-ChildItem или любой другой командлет в Powershell.

Назовите свою функцию одинаково

Если вы создадите функцию с тем же именем в той же области видимости, будет использоваться ваша.

Пример:

Function Get-ChildItem {
[CmdletBinding()]
param(
    # Simulate the parameters here
)
    # ... do stuff
}

Использование псевдонимов

Создайте свою собственную функцию, а затем создайте псевдоним для этой функции с тем же именем, что и командлет, который вы хотите переопределить.

Пример:

Function My-GetChildItem {
[CmdletBinding()]
param(
    # Simulate the parameters here
)
    # ... do stuff
}

New-Alias -Name 'Get-ChildItem' -Value 'My-GetChildItem' -Scope Global

Этот способ удобен, потому что проще протестировать вашу функцию, не вдаваясь в встроенную функцию, и вы можете контролировать, когда командлет переопределяется или нет в вашем коде.

Чтобы удалить псевдоним:

Remove-Item 'Alias:\Get-ChildItem' -Force

Знайте приоритет команд

about_Command_Precedence перечисляет порядок, в котором интерпретируются команды разных типов:

Если не указать путь, Windows PowerShell будет использовать следующий порядок приоритета при выполнении команд:

  1. Псевдоним
  2. Функция
  3. Командлет
  4. Родные команды Windows