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

PowerShell中Import-Excel单值计数为空的问题求助

问题解决方法

问题原因

当筛选结果仅1条时,Import-Excel返回的是单个PS对象,而非数组。单个对象没有.count属性,因此$Skipped.count会返回空;当结果多于1条时,返回的是数组,数组自带.count属性,所以能正常获取计数。

解决方式

方式一:强制转为数组

用@()将筛选结果包裹,确保无论结果数量多少都以数组形式存储,这样.count属性始终有效:

$Skipped = @(Import-excel -path 'C:\temp\IM April Test Migration Stuff\Sharegate Task Reports\im3.xlsx' | where 'Status' -eq 'Skipped' | select title, Type, status)
$report = New-Object psobject
$report | Add-Member -MemberType NoteProperty -Name Skipped -Value $Skipped.count

write-host $report

方式二:直接统计数量(更高效)

如果只需要计数,不需要保存所有匹配的对象,用Measure-Object直接统计,避免数组转换的额外开销:

$skippedCount = Import-excel -path 'C:\temp\IM April Test Migration Stuff\Sharegate Task Reports\im3.xlsx' | 
    Where-Object 'Status' -eq 'Skipped' | 
    Measure-Object | 
    Select-Object -ExpandProperty Count

$report = [PSCustomObject]@{
    Skipped = $skippedCount
}

Write-Host $report

注:[PSCustomObject]是创建自定义对象更简洁的方式,替代New-Object+Add-Member的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:47:14