有没有办法清除函数内部的返回值,这样我可以保证返回值是我的意图?或者可能关闭该功能的行为?在Powershell函数中清除捕获的输出/返回值
在这个例子中,我希望返回值是包含一个ArrayList(“你好”,“世界”)
function GetArray()
{
# $AutoOutputCapture = "Off" ?
$myArray = New-Object System.Collections.ArrayList
$myArray.Add("Hello")
$myArray.Add("World")
# Clear return value before returning exactly what I want?
return $myArray
}
$x = GetArray
$x
但是,输出包含的添加操作所捕获的值。
0
1
Hello
World
我觉得这是PowerShell的“特性”,很烦人,因为它使得它很容易只是通过调用另一个函数,你不知道返回的值打破你的功能。
更新
我知道有办法,以防止被捕获(如下面的答案之一描述)的输出,但需要你知道一个函数实际上返回一个值。如果你调用另一个Powershell函数,它可能会在将来有人改变这个函数返回一个值,然后它会破坏你的代码。
你是如何处理这个问题的?这是powershell的非常烦人的功能,不允许控制返回值。 – Feru
我刚刚到处使用[void]。我还决定在C#中执行复杂的事情更容易,然后使用PowerShell将它们粘合在一起。 – Mas