Идиома PowerShell для проверки на наличие команды? - PullRequest
3 голосов
/ 14 марта 2011

Мне бы хотелось, чтобы функция проверяла наличие команды (командлет, функция, псевдоним и т. Д.) В PowerShell.Он должен вести себя так:

PS C:\> Test-Command ls
True
PS C:\> Test-Command lss
False

У меня есть функция, которая работает, но мне не кажется ни идиоматической, ни элегантной.Есть ли более шикарный способ сделать это:

function Test-Command( [string] $CommandName )
{
    $ret = $false
    try
    {
        $ret = @(Get-Command $CommandName -ErrorAction Stop).length -gt 0
    }
    catch
    {
        # do nothing
    }
    return $ret
}

Бонусный вопрос:

Python: pythonic :: PowerShell: ?

Я бы сказал шикарный но есть ли еще что-то общее в использовании?

Ответы [ 2 ]

6 голосов
/ 14 марта 2011

Как насчет этого:

function Test-Command( [string] $CommandName )
{
    (Get-Command $CommandName -ErrorAction SilentlyContinue) -ne $null
}

(Кстати, мне нравится шикарный )

1 голос
/ 14 марта 2011

для бонусного вопроса я говорю "PowerShelly"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...