我有一个像这样的脚本:
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”中进行赋值时,有没有办法指定变量的范围?
答案 0 :(得分:1)
使用负载参数要达到的目标并不是很明确。您尝试执行的操作可能会使用脚本参数的默认值来解决:
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
}