gpt4 book ai didi

powershell - Clear-Variable 和将变量设置为 NULL 的区别

转载 作者:行者123 更新时间:2023-12-03 16:31:16 24 4
gpt4 key购买 nike

我经常使用在脚本作用域中声明的变量来避免函数及其作用域的问题。我像这样声明这些变量:

New-Variable -Name test -Option AllScope -Value $null

...或者有时我会像这样切换现有变量以全面使用它们:
$script:test = $test

当我想清除它们时,我要么使用它:
Clear-Variable test -Scope Script

...或者我只是使用这个:
$test = $null

有区别吗?我应该更喜欢什么,为什么?

最佳答案

从获取帮助:

The Clear-Variable cmdlet deletes the data stored in a variable, but it does not delete the variable. As a result, the value of the variable is NULL (empty). If the variable has a specified data or object type, Clear-Variable preserves the type of the object stored in the variable.



所以 Clear-Variable$var=$null几乎是等价的(保留的打字除外)。一个精确的等价物是做 $var=[mytype]$null .

你可以自己测试一下:
$p = "rrrr"
Test-Path variable:/p # => $true
$p = $null
Get-Member -InputObject $p # => error
$p = [string]$null
Get-Member -InputObject $p # => it is a string

并回答下一个问题:如何完全删除变量(因为不存在的变量与空值变量不同)?简单地做
rm variable:/p
Test-Path variable:/p => $false

关于powershell - Clear-Variable 和将变量设置为 NULL 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568027/

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