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

PowerShell中检测全0xFF列表问题:数组Equals返回False解决方法

检测PowerShell中全为0xFF的数组行

在PowerShell里,数组的Equals()方法是引用比较——只有两个变量指向同一个数组对象时才会返回True,哪怕内容完全一致的两个独立数组实例,结果也会是False,这就是你遇到问题的原因。

下面是几种可行的解决方法:

方法一:直接验证数组所有元素均为0xFF(最贴合你的需求)

既然目标是判断数组是否全是0xFF,不需要额外定义对比数组,直接检查元素即可:

$values = (0xFF, 0xFF, 0xFF, 0xFF)

# 过滤出非0xFF的元素,若数量为0则说明全是0xFF
$isAllFF = ($values | Where-Object { $_ -ne 0xFF }).Count -eq 0

方法二:用Compare-Object对比数组内容

如果需要和特定模板数组(比如你的$empty)对比内容是否一致:

$empty = (0xFF, 0xFF, 0xFF, 0xFF)
$values = (0xFF, 0xFF, 0xFF, 0xFF)

# 无差异则返回True
$isEqual = -not (Compare-Object -ReferenceObject $empty -DifferenceObject $values)

方法三:使用.NET的SequenceEqual方法

借助.NET的Linq方法直接比较序列内容:

$empty = (0xFF, 0xFF, 0xFF, 0xFF)
$values = (0xFF, 0xFF, 0xFF, 0xFF)

$isEqual = [System.Linq.Enumerable]::SequenceEqual($empty, $values)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:35:27