我想要一个函数来测试 PowerShell 中命令(cmdlet、函数、别名等)是否存在。它的行为应该是这样的:

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 : ?

我会说豪华,但还有其他常用的东西吗?

最佳答案

这个怎么样:

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

(顺便说一句,我喜欢豪华)

关于用于测试命令是否存在的 PowerShell 习语?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5294432/

10-13 07:28