Remove-Variable - 无法找到具有名称的变量
Remove-Variable - Cannot find a variable with the name
我有一个 powershell 脚本,其中包含以下 hashtable
[HashTable]$folder_and_prefix = @{}
在我的脚本中的某个点之后我不再需要那个 hashtable
,我尝试这样做:
Remove-Variable $folder_and_prefix
但我收到以下错误:
Remove-Variable : Cannot find a variable with the name
'System.Collections.Hashtable'
是否可以删除我不再需要的 hastable?
这是一个常见的错误。 Remove-Variable
使用变量的 名称 (a [String]
),并通过引用变量本身(带有美元符号 $
)传递 值 。删除美元符号,这就是您所需要的:
Remove-Variable folder_and_prefix
此外,它需要一个名称数组,所以你可以这样做:
$var1 = 5
$var2 = 'Hello'
$var3 = @{}
Remove-Variable var1,var2,var3
它接受通配符:
Remove-Variable var*
Set-Variable
、Get-Variable
和 Clear-Variable
也接受通配符(New-Variable
除外)。
如其他人所述,在引用变量本身时不要使用美元符号 ($)。此外,我总是使用如下条件语句检查变量是否存在(在尝试删除它之前):
if (Test-Path variable:myVar) {Remove-Variable myVar} #Delete only if local variable exists.
[int]$myVar = 5;
您还可以检查您的变量在特定范围内是否存在,例如,对于全局范围:
if (Test-Path variable:global:myVar) {Remove-Variable myVar –Scope Global}
您甚至可以检查环境变量,如下所示:
if (Test-Path env:ComputerName) {"do something with $env:ComputerName."}
HTH
我有一个 powershell 脚本,其中包含以下 hashtable
[HashTable]$folder_and_prefix = @{}
在我的脚本中的某个点之后我不再需要那个 hashtable
,我尝试这样做:
Remove-Variable $folder_and_prefix
但我收到以下错误:
Remove-Variable : Cannot find a variable with the name 'System.Collections.Hashtable'
是否可以删除我不再需要的 hastable?
这是一个常见的错误。 Remove-Variable
使用变量的 名称 (a [String]
),并通过引用变量本身(带有美元符号 $
)传递 值 。删除美元符号,这就是您所需要的:
Remove-Variable folder_and_prefix
此外,它需要一个名称数组,所以你可以这样做:
$var1 = 5
$var2 = 'Hello'
$var3 = @{}
Remove-Variable var1,var2,var3
它接受通配符:
Remove-Variable var*
Set-Variable
、Get-Variable
和 Clear-Variable
也接受通配符(New-Variable
除外)。
如其他人所述,在引用变量本身时不要使用美元符号 ($)。此外,我总是使用如下条件语句检查变量是否存在(在尝试删除它之前):
if (Test-Path variable:myVar) {Remove-Variable myVar} #Delete only if local variable exists.
[int]$myVar = 5;
您还可以检查您的变量在特定范围内是否存在,例如,对于全局范围:
if (Test-Path variable:global:myVar) {Remove-Variable myVar –Scope Global}
您甚至可以检查环境变量,如下所示:
if (Test-Path env:ComputerName) {"do something with $env:ComputerName."}
HTH