gpt4 book ai didi

Powershell将参数值传递给参数并返回

转载 作者:行者123 更新时间:2023-12-04 13:24:19 25 4
gpt4 key购买 nike

好的。我正在尝试完成一项学校作业,但我一生都无法弄清楚这一点。我正在尝试使用 powershell 将值从一个函数传递到另一个函数,从而制作“模块化”类型的脚本。我似乎无法弄清楚如何在不使用 $script:xxxxx 的情况下将值移出函数范围。是否有另一种方法可以将 powershell 中的值作为常规参数参数通过引用传递?

这是我所拥有的:

function main
{
inputGrams($carbGrams, $fatGrams)
$carbGrams
$carbGrams
calcGrams
displayInfo
}

function inputGrams([ref]$carbGrams, [ref]$fatGrams)
{
$carbGrams = read-host "Enter the grams of carbs per day"
$fatGrams = read-host "Enter the grams of fat per day"
}

function calcGrams
{
$carbCal = $carbGrams * 4
$fatCal = $fatGrams * 9
}

function displayInfo
{
write-host "The total amount of carb calories is $carbCal"
write-host "The total amount of fat calories is $fatCal"
}

main

inputGrams 函数之后的两个值应在每次脚本运行时更改,但由于范围问题和传递值,它们不会更改。任何人都知道如何正确地将这些值传递回主函数?

最佳答案

有几个问题。首先这是一个工作示例:

function main
{
# 1. Create empty variable first.
New-Variable -Name carbGrams
New-Variable -Name fatGrams

# 2. Spaces in between parameters. Not enclosed in parens.
# 3. Put REF params in parens.
inputGrams ([ref]$carbGrams) ([ref]$fatGrams)

$carbGrams
$fatGrams
}

function inputGrams( [ref]$carbGrams, [ref]$fatGrams )
{
# 4. Set the Value property of the reference variable.
$carbGrams.Value = read-host "Enter the grams of carbs per day"
$fatGrams.Value = read-host "Enter the grams of fat per day"
}

main

和解释:
  • 您需要先创建变量,然后再通过 REF 传递它。
  • 不要将 PowerShell 函数参数括在括号中,只需将它们用空格分隔即可。
  • 将 REF 参数放在括号中。
  • 要设置 REF 变量的值,您需要设置 Value 属性。
  • 关于Powershell将参数值传递给参数并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222285/

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