Могу ли я отменить эту команду? Я хочу делать свою работу, когда выполняю команду 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 будет использовать следующий порядок приоритета при выполнении команд:
- Псевдоним
- Функция
- Командлет
- Родные команды Windows