[英]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.