繁体   English   中英

Powershell功能后如何保留参数值?

[英]how to preserve parameter values after powershell function?

我有一个像这样的脚本:

test.ps1

param (
    $name,
$age
)

function load-parameters()
{
$name = "Bob"
$age = "23"

Write-Host "name: " $name
Write-Host "age: " $age
}

load-parameters
Write-Host "name: " $name
Write-Host "age: " $age

除了名称和年龄,我有大约10个参数正在加载并在加载参数内部进行初始化。

我要解决的问题是尝试保留脚本中全局作用域函数的初​​始化值(我认为是)。

上面的函数返回:

name:  Bob
age:  23
name:
age:

将本地编辑更改为功能时,它们是否进行了有线连接? 看起来实现是通过复制将参数传递给您在脚本内编写的函数。

我意识到我可以通过按引用传递变量来解决这个问题(如果在Powershell函数中甚至有东西),但是鉴于我需要传递的参数数量,这将是很丑陋的。 当我在函数“ load-parameters”中进行赋值时,有没有办法指定变量的范围?

使用负载参数要实现的目标还不是很清楚。 您尝试执行的操作可能会使用脚本参数的默认值解决:

param (
    $name = "Bob",
    $age = "23"
)

您尝试的另一种选择是在脚本范围内使用变量:

$script:name = "Bob"

因此,您可以在函数中执行以下操作:

function load-parameters
{
$script:name = "Bob"
$script:age = "23"

Write-Host "name: " $name
Write-Host "age: " $age
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM