You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中?{ $_.VirtualMachine -NE $null}语句的含义是什么

获取所有网络接口

完整命令如下:

$nics = Get-AzNetworkInterface | ?{ $_.VirtualMachine -NE $null}

?{ $_.VirtualMachine -NE $null}片段说明

逐部分拆解语法规则:

  • ?是PowerShell中Where-Object命令的默认别名,作用是过滤管道传递过来的对象集合,只留下符合指定条件的对象。
  • 大括号{}包裹的是过滤判断逻辑,会对集合里的每一个对象逐一执行判断,判断结果为真的对象才会被保留。
  • $_是PowerShell的特殊管道变量,固定代表当前正在被处理的单个对象,在这段代码里就是每一个查询返回的网络接口对象。
  • .VirtualMachine是网络接口对象的内置属性:如果网卡已经关联到某台Azure虚拟机,这个属性会存储对应虚拟机的引用信息;如果网卡没有挂载到任何虚拟机(比如闲置备用网卡、已删除虚拟机遗留的网卡),这个属性就没有有效值。
  • -NE是PowerShell的比较运算符,意思是不等于,和多数编程语言里的!=作用一致。
  • $null是PowerShell里的空值,代表属性没有被赋值、不存在有效引用的状态。

整个片段的实际作用:

从所有查询到的Azure网络接口里,筛选出已经关联了虚拟机的网卡,丢弃未挂载虚拟机的网卡,最终筛选后的结果存入$nics变量。

内容的提问来源于stack exchange,提问作者mayank tyagi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 11:03:15