我想Invoke-Expression
在函数内部调用并将命令的输出打印到控制台,但不要从函数中返回它,因为我想从中返回一个特定的值。
function Foo {
$command = 'mvn clean package "-Dmaven.test.skip"'
Invoke-Expression -Command $command | Write-Host
$result = 'computed return value'
return $result
}
$fooResult = Foo
Write-Output "fooResult is: ${fooResult}"
这行得通,但我想避免使用 evilWrite-Host
功能,所以我尝试Write-Information
了。但我似乎无法通过管道输出Invoke-Expression
to Write-Information
。当我简单地用它替换Write-Host
时,Write-Information
它的行为就像-MessageData
没有提供参数(在明确声明时类似-MessageData
)。
有没有办法将输出写入Invoke-Expression
控制台,但避免在不使用的情况下从函数中返回它Write-Host
?