用于测试命令是否存在的 PowerShell 习惯用法?

发布于 2024-10-21 22:26:00 字数 571 浏览 6 评论 0原文

我想要一个函数来测试 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:

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

I'd like a function to test for the existence of a command (cmdlet, function, alias, etc.) in PowerShell. It should behave like this:

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

I have a function that works but strikes me as neither idiomatic nor elegant. Is there a more posh way to do this:

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

Bonus question:

Python : pythonic :: PowerShell : ?

I'd say posh but is there something else in common use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

素罗衫 2024-10-28 22:26:00

这个怎么样:(

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

顺便说一句,我喜欢豪华

How about this:

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

(BTW, I like posh )

猥琐帝 2024-10-28 22:26:00

对于奖励问题我说“PowerShelly”

for the bonus question i say "PowerShelly"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文