Clear-Variable

删除变量的值。

语法

Default (默认值)

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"

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

参数

-Confirm

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

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:cf

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Exclude

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

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Force

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

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Include

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

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Name

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

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

(All)
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-PassThru

返回一个对象,该对象表示你正在处理的项目。 默认情况下,此 cmdlet 不生成任何输出。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Scope

指定此别名有效的范围。

此参数的可接受值为:

  • Global
  • Local
  • Script

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

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-WhatIf

显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。

参数属性

类型:SwitchParameter
默认值:False
支持通配符:False
不显示:False
别名:无线

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

None

不能用管道将对象传送到此 cmdlet。

输出

None

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

PSVariable

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

备注

Windows PowerShell 为 Clear-Variable提供以下别名:

  • clv

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

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

    如果清除的变量不存在,则 cmdlet 不起作用。 它不会创建具有 null 值的变量。