首页 > 解决方案 > Powershell获取所有等于false的变量

问题描述

我有一个检查文件的脚本,如果找到设置变量 $true,在脚本的末尾我试图打印哪些变量等于 false,但我无法使它工作我尝试了下面的代码,但它没有不行

Get-Variable | Where-Object Value -like $false

标签: powershell

解决方案


将结果传递Get-Variablewhere-object并检查值和类型。如果检查省略类型,结果有点令人惊讶。像这样,

$foo = $true
$bar = $false

Get-Variable | ? { $_.value -eq $false  }

Name                           Value
----                           -----
bar                            False
DebugPreference                SilentlyContinue
false                          False
InformationPreference          SilentlyContinue
NestedPromptLevel              0
VerbosePreference              SilentlyContinue
WhatIfPreference               False

# Add type check too
Get-Variable | ? { $_.value -eq $false -and $_.value -is [boolean] }

Name                           Value
----                           -----
bar                            False
false                          False
WhatIfPreference               False

推荐阅读