【问题标题】:PowerShell function return valuePowerShell 函数返回值
【发布时间】:2019-06-09 19:45:12
【问题描述】:

考虑:

function func {
    echo ALERT
    return $false
}

if (func) {
    Write-Output "TRUE"
}

尽管函数返回 false,但此代码仍写入 TRUE。但是,当我写[void]echo ALERT时,PowerShell会抛出一个错误:

表达式或语句中出现意外的标记“echo”。

如何修复此代码?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您的代码中的echo ALERT 返回一个字符串(echoWrite-Output 的别名)。

    如果您对字符串进行if 检查,PowerShell 会检查该字符串是否不为空或为空。

    因此它总是返回 true。

    如果您想提醒用户“ALERT”,请使用Write-Host

    function func {
        Write-Host ALERT
        return $false
    }
    

    【讨论】:

    • 为什么我不能简单地写 [void]echo (它会抛出错误)?我必须将 echo 包裹在 {} i 中。 e. [void]{echo ALERT} 使代码通过语法检查。
    猜你喜欢
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多