如何清除powershell中的多个局部变量

如何清除powershell中的多个局部变量,powershell,shell,Powershell,Shell,我想我们可以做到 清除变量名\u Name、StudentDOB、StudentLastName 但是我有大约200个变量需要在foreach循环之后清除,我想知道是否有一种简单的方法可以一次性清除所有这些局部变量 感谢请注意,并就避免大量变量提出合理的建议: 在变量中而不是在单个变量中收集多个值 或者,对于命名访问,创建多个值作为单个对象的命名(键控)项或单个实例的属性 要解决所提出的问题: 请注意,仅将变量的值重置为$null,实际上并不删除变量 要整体删除变量,请使用。 两个cm

我想我们可以做到 清除变量名\u Name、StudentDOB、StudentLastName

但是我有大约200个变量需要在foreach循环之后清除,我想知道是否有一种简单的方法可以一次性清除所有这些局部变量

感谢

请注意,并就避免大量变量提出合理的建议:

  • 在变量中而不是在单个变量中收集多个值

  • 或者,对于命名访问,创建多个值作为单个对象的命名(键控)项或单个实例的属性

要解决所提出的问题:


请注意,仅将变量的值重置为
$null
,实际上并不删除变量

要整体删除变量,请使用。

两个cmdlet:

  • 接受作为
    -Name
    参数的参数;模式
    *
    是匹配所有名称的模式

  • 有一个
    -Scope
    参数,用于指定其变量要指向的作用域,即
    全局
    脚本
    本地
    ,或一个编号的作用域,其中
    0
    本地
    相同,
    1
    是父作用域,
    2
    是祖辈作用域,等等

建议使用共享名称前缀,比如说
foo\uu
,用于那些您希望一次删除所有变量的变量,这样您就可以调用如下内容:

Remove-Variable -Scope Local foo_*

退一步:如果有一个包含变量的代码块要限制到该块,只需使用(
{…}
)并使用
&
调用它,
,该在子作用域中运行脚本块,当该块的执行结束时,其变量将超出作用域;e、 g:

# Any variables created inside the { ... } block executed 
# with & are scoped to that block.
& {
  foreach ($i in 1..3) {
    $j = $i
  }
}

请向我们展示你的代码和你迄今为止尝试过的任何东西,我怀疑你在创建这么多变量时做得不对。例如,列出应存储在对象属性中的值。与
$StudentDOB
不同,otta可能使用
$Student.DOB
-注意分隔变量
$Student
和属性
DOB
的点。是的,用于自定义变量。养成给他们加前缀的习惯,比如说2-3个字符。用你名字的前三个字母。所以,像“sanSomeVariableName”,然后用“san*”清除或删除它们。为了赞美@Lee_Dailey's,我可能会使用一个哈希表:
$Student=@{}
<代码>$Student['DOB']='my DOB'。无论如何,请显示问题中的代码,以便我们能够更好地帮助您。