我正在尝试在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")
非常欢迎每一点帮助!
答案 0 :(得分:0)
您需要在没有括号的情况下调用您的函数,例如:
writeLabel "output" "Testtext"
否则,PowerShell将("output","Testtext")
视为单个参数。
在侧节点上,您的函数应调用Write-Label