我有一个脚本,其中包含一个函数,该函数定义了一些变量,以便以后使用.例如,它看起来像这样:
$Rig = "TestRig1"
Function Setup{
If ($Rig -eq "TestRig1") {
$Script:Server="Alpharius"
$Script:IIS1="Tactical"
$Script:IIS2="Assault"
}
}
Setup
<do things with $Server>
Run Code Online (Sandbox Code Playgroud)
(这不是实际的脚本,但它是类似的)
我很好奇的是,如果有更好的方法来记录这一点,而不是单独用它们的范围标记每个变量.有什么方法可以说明函数中声明的所有变量都是脚本范围?
一种选择是通过点源来在本地范围内运行该功能:
$Rig = "TestRig1"
Function Setup{
If ($Rig -eq "TestRig1") {
$Server="Alpharius"
$IIS1="Tactical"
$IIS2="Assault"
}
}
. Setup
<do things with $Server>
Run Code Online (Sandbox Code Playgroud)
注意"设置"之前的点和空格 - 空间必须在那里.这将在当前作用域中运行该函数,并在那里创建变量.请确保它们不会与范围中已有的任何现有变量名冲突.
另一种选择是使用哈希表:
$Rig = "TestRig1"
$RigParams = @{}
Function Setup{
If ($Rig -eq "TestRig1") {
$RigParams.Server="Alpharius"
$RigParams.IIS1="Tactical"
$RigParams.IIS2="Assault"
}
}
Setup
<do things with $RigParams.Server>
Run Code Online (Sandbox Code Playgroud)
该函数将更新父作用域中的哈希表键,而不是在函数作用域中创建新变量.
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |