gpt4 book ai didi

function - 在没有调用代码的情况下将输出定向到函数中的stdout

转载 作者:行者123 更新时间:2023-12-03 01:22:40 26 4
gpt4 key购买 nike

我写了几个Powershell脚本,它们为客户端部署软件。我使用Write-Host输出了大量信息,以便可以监视部署的进度,他们使用Start-Transcript从其部署应用程序之一调用此命令,以捕获此输出。

但是,他们还需要能够从只能捕获stdout输出的另一个应用程序中调用其中一些脚本。这意味着Write-Host将无法在那里工作,因为它仅输出到控制台或主机,并且不会直接指向stdout(对吗?)

我的想法是,我可以更改代码以改为使用Write-Out,除了这会引起另一个问题。由于我使用了函数,并且由于Powershell中的函数“返回”了,所以所有将stdout发送给调用者的都可能搞砸了我从函数中检索输出的任何代码。

有没有一种方法可以将输出直接从函数输出到stdout而不将其作为函数本身的输出发送到调用代码?这是问题的示例:

function Test-Output ([int]$number) {
Write-Output "This is a string"
return $number
}

[int]$someNumber = Test-Output 10

$someNumber

如果运行上面的代码,您将看到一个错误,因为Powershell试图将“This is a string”分配给整数 $someNumber。如果将变量更改为 string,则它将捕获函数的完整输出(这是字符串10),并将其分配给变量。

感谢您提供的任何建议!

最佳答案

试试这个。

function Add-Numbers {
param (
[double] $FirstNumber,
[double] $SecondNumber
)

Write-Host "Hello World"

return ($FirstNumber + $SecondNumber)
}

$result = Add-Numbers 1 2

#Write-Host "Result is $result"

关于function - 在没有调用代码的情况下将输出定向到函数中的stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8546091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com