与输出一样

时间:2012-07-30 10:02:00

标签: powershell sql-like

仍在努力学习Powershell,并且遇到一些简单的问题,因为它适用于我编写的其他脚本,因此必须缺少一些愚蠢的东西。 基本上我需要确定Nic是否已启用但未附加到任何内容,因此我可以添加另一个命令来禁用它。如果它已被禁用,我只需要输出True。 值.netconnectionstatus返回0,所以我期待-like命令 我只是自己使用$ disabled来检查我的输出。

$disabled = gwmi win32_networkadapter | where {$_.PhysicalAdapter -eq "True"-and $_.netenabled -ne "True"}`
| % { '{0,10} {1,20}' -f $_.netenabled,$_.netconnectionstatus}
$disabled
$_.netconnectionstatus -like "0"

1 个答案:

答案 0 :(得分:1)

-like和-match运算符仅在字符串比较中才有意义。 在这里-eq是最好的选择,如果你期望整数,则没有引号。此外 - 如果您有布尔值,则无需将其与任何内容进行比较。在此处,如果您要更改:$_.NetEnabled -ne 'False',您将得到完全相同的结果...请改用where { $_.PhysicalAdapter -and (-not $_.NetEnabled)}。如果你决定改变它,你想要自己用脚射击,因为PS对待弦的方式([bool]'False'-eq $ true)。

另外:你的$ _在foreach-object scriptblock之外是空白的。因此,你得到$ false。