gpt4 book ai didi

powershell - Powershell变量范围

转载 作者:行者123 更新时间:2023-12-03 00:38:00 25 4
gpt4 key购买 nike

我有一个脚本,其中包含一个函数,该函数在其中定义了一些变量以供以后使用。例如,它看起来像这样:

$Rig = "TestRig1"

Function Setup{
If ($Rig -eq "TestRig1") {
$Script:Server="Alpharius"
$Script:IIS1="Tactical"
$Script:IIS2="Assault"
}
}

Setup
<do things with $Server>

(这不是实际的脚本,但是类似)

我很好奇的是,有没有一种更好的方式来记录这一点,而不是用它们的范围分别标记每个变量。我可以通过某种方式声明一个函数中声明的所有变量都是脚本范围的吗?

最佳答案

一种选择是通过点源购买在本地范围内运行该功能:

$Rig = "TestRig1"

Function Setup{
If ($Rig -eq "TestRig1") {
$Server="Alpharius"
$IIS1="Tactical"
$IIS2="Assault"
}
}

. Setup
<do things with $Server>

注意“设置”之前的点和空格-空格必须存在。这将在当前作用域中运行该函数,并在其中创建变量。只要确保它们不会与作用域中已有的任何现有变量名冲突即可。

另一种选择是使用哈希表:
$Rig = "TestRig1"

$RigParams = @{}

Function Setup{
If ($Rig -eq "TestRig1") {
$RigParams.Server="Alpharius"
$RigParams.IIS1="Tactical"
$RigParams.IIS2="Assault"
}
}

Setup
<do things with $RigParams.Server>

该函数将在父范围内更新哈希表键,而不是在函数范围内创建新变量。

关于powershell - Powershell变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27369177/

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