尝试从PowerShell中的函数传回字符串

时间:2018-12-10 02:22:46

标签: function powershell byref

function ExtractLocations([ref]$lp_Locations) {
    $lp_Locations.Value = "A STRING VALUE"

    return 0
}

...   

$Locations = ""
if (@(ExtractLocations([ref]$Locations)) -ne 0) {
    RecordErrorThenExit
}

$Locations始终以空白字符串结尾。

2 个答案:

答案 0 :(得分:0)

除了@ mklemen0所说的那样,要设置值,您不需要像$Variable.Value = 'Something'那样做,它只是$Variable = 'Something'

使用@()表达式,您正在将输出转换为此处不需要的数组。在PowerShell中不建议声明类似于c#中的方法的函数。您可以按照以下方式进行操作。

function ExtractLocations{
    Param([ref]$lp_Locations)
    $lp_Locations = "A STRING VALUE"

    return 0
}

ExtractLocations -lp_Locations ([ref]$Locations)

答案 1 :(得分:0)

无论我如何尝试都无法使其与参数一起使用,因此将值作为字符串返回,并且可以正常工作:

功能提取位置 { ....     返回$ lp_Locations }

$ Locations =提取位置 编写“修改$ TABLE以与位置进行重组=($($ Locations.value))\ p \ g” | sql $ SQLFLAGS $ TARGETDB