powershell不能打印NULL但不是NULL的变量

时间:2016-10-20 12:13:51

标签: powershell switch-statement

我正在尝试在Powershell中编写一个函数,如果我使用"输出"运行函数,则在控制台中使用写输出打印一个Header。作为第一个参数,带有写警告(如果参数是"警告"),或带有写错误(如果参数是"错误")。

我无法理解,为什么没有打印$ line2,因为它应该在开关部分中。 在第4行,它按预期工作。

function writeLabel{
    $labelType = $args[0]
    $labelText = $args[1] #    <----

    Write-Output $labelText
    Write-Output $labelType #    <---- this works as expected

    $line1 = "`n-------------------------"
    $line2 = $labelText #    <---- this is not working
    $line3 = "`n-------------------------"

    switch ($labelType){

        warning { 
            Write-Warning $line1
            Write-Warning $line2
            Write-Warning $line3
        }
        error { 
            Write-Error $line1
            Write-Error $line2
            Write-Error $line3
        }  
        output { 
            Write-Output $line1
            Write-Output $line2
            Write-Output $line3
        }  
    }
}

writeLabel("output","Testtext")

非常欢迎每一点帮助!

1 个答案:

答案 0 :(得分:0)

您需要在没有括号的情况下调用您的函数,例如:

writeLabel "output" "Testtext"

否则,PowerShell将("output","Testtext")视为单个参数。

在侧节点上,您的函数应调用Write-Label