Если требуется добавить новый псевдоним для собственной функции или уже имеющегося командлета в PowerShell, полезно проверить, не существует ли он.
Для начала, если кто-то не знает, что такое псевдоним в PowerShell, следует ознакомиться с определением, котором даётся в официальном руководстве PowerShell от Microsoft.
Псевдоним — это альтернативное имя или сокращенное имя командлета или элемента команды, например функции, скрипта, файла или исполняемого файла. Команду можно выполнять с помощью псевдонима вместо имени исполняемого файла.
Например, псевдоним cd
это сокращённое имя командлета Set-Location
, а псевдоним rm
это сокращённое имя командлета Remove-Item
. При наборе команд в консоли PowerShell использованием сокращённых имён стандартных командлетов может сэкономить время.
Для того, чтобы посмотреть все доступные псевдонимы, используется командлет Get-Alias
, вызванный без параметров.
Не обязательно просматривать список и искать в нём имена псевдонимов, чтобы удостовериться в том, что желаемое имя псевдонима не занято. Это можно сделать при помощи командлета Test-Path
.
Например, если требуется добавить псевдоним gdbny для собственной функции Get-DaysBeforeNewYear
, при условии, что выбранное имя псевдонима свободно, это можно сделать так.
If (-Not (Test-Path -Path Alias:gdbny)) {
Set-Alias -Name gdbny -Value Get-DaysBeforeNewYear
} Else {
Write-Host "Alias gdbny already exist"
}
Благодаря такой проверке существования псевдонима, в случае если псевдоним создан без применения параметра только для чтения, как в примере, предотвращается его переназначение.
Альтернативным вариантом проверки существования псевдонима является командлет Get-Alias
. Следующий код проверит существование псевдонима и выведет соответствующее сообщение.
If (Get-Alias -Name gdbny -ErrorAction SilentlyContinue) {
Write-Host "Alias gdbny exist"
} Else {
Write-Host "Alias gdbny doe not exist"
}
Для удаления уже существующего псевдонима можно использовать такой код.
If (Test-Path -Path Alias:gdbny) {
Remove-Item -Path Alias:gdbny
}
Рассмотренные примеры показывают, как легко можно добавить, удалить или переназначить псевдонимы в PowerShell. Поэтому, не смотря на то, что использование псевдонимов может ускорить работу в консоли PowerShell, не стоит использовать псевдонимы в коде своих функций или командлетов. В них будет безопаснее и надёжнее обращаться к полным именам командлетов и функций.