Clear-Variable

删除变量的值。

语法

Clear-Variable
     [-Name] <String[]>
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-Force]
     [-PassThru]
     [-Scope <String>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

说明

Clear-Variable cmdlet 删除存储在变量中的数据,但不删除该变量。 因此,该变量的值为 NULL(空)。 如果该变量具有指定的数据或对象类型,则此 cmdlet 将保留存储在变量中的对象的类型。

示例

示例 1:移除以搜索字符串开头的全局变量的值

Clear-Variable my* -Scope Global

此命令移除名称以 my 开头的全局变量的值。

示例 2:清除子作用域中的某个变量,但不清除父作用域中的该变量

$a=3
&{ Clear-Variable a }
$a

3

这些命令演示了清除子作用域中的变量并不会清除父作用域中的值。 第一个命令将变量 $a 的值设置为 3。 第二个命令使用调用运算符 (&) 在新的作用域中运行 Clear-Variable 命令。 在子作用域中清除该变量(尽管它不存在),但不会在本地作用域中清除它。 第三个命令获取 $a 的值,它表明值 3 未受影响。

示例 3:删除指定的变量的值

Clear-Variable -Name "Processes"

此命令删除名为 Processes 的变量的值。 此 cmdlet 完成操作后,名为 Processes 的变量仍然存在,但值为 null。

参数

-Confirm

提示你在运行 cmdlet 之前进行确认。

类型:SwitchParameter
别名:cf
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

-Exclude

指定此 cmdlet 在操作中将忽略的项的数组。 此参数值使 Name 参数有效。 请输入名称元素或模式,例如“s*”。 允许使用通配符。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:True

-Force

允许 cmdlet 清除变量,即使该变量是只读的。 即使使用 Force 参数,该 cmdlet 也无法清除常量。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Include

指定此 cmdlet 将在操作中包含的项数组。 此参数值使 Name 参数有效。 请输入名称元素或模式,例如“s*”。 允许使用通配符。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:True

-Name

指定要清除的变量的名称。 允许使用通配符。 此参数为必需参数,但参数名 Name 为可选项。

类型:String[]
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:True

-PassThru

返回一个代表你所处理的项目的对象。 默认情况下,此 cmdlet 将不产生任何输出。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Scope

指定此别名的有效作用域。

此参数的可接受值为:

  • Global
  • Local
  • Script

你还可以使用一个相对于当前作用域的数字(0 到作用域数,其中 0 是指当前作用域,1 是指其父作用域)。 默认值为 Local。 有关详细信息,请参阅 about_Scopes

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

类型:SwitchParameter
别名:wi
Position:Named
默认值:False
必需:False
接受管道输入:False
接受通配符:False

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

None

默认情况下,此 cmdlet 不返回任何输出。

PSVariable

使用 PassThru 参数时,此 cmdlet 返回表示被清除变量的 PSVariable 对象。

备注

PowerShell 包含 Clear-Variable 的以下别名:

  • 所有平台:

    • clv
  • 若要删除变量及其值,请使用 Remove-VariableRemove-Item

    即使使用 Force 参数,此 cmdlet 也不会删除设置为常量或系统所拥有的变量的值。

    如果你清除的变量不存在,则此 cmdlet 无效。 它不会创建具有 null 值的变量。