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

如何将PowerShell中$a的进程ID数据存入预定义的$arr数组?

把进程ID存入预定义int64数组的方法

你可以通过以下几种方式,将$a中的进程ID存入预先创建的$arr数组:

方式1:直接覆盖数组(最简单)

因为$a.Id会返回所有进程ID的纯数值集合,直接赋值就能得到对应类型的数组:

$arr = $a.Id

注:这种方式会替换你之前创建的固定长度1000的数组,新数组的长度等于筛选出的进程数。如果要保留原固定长度数组,用下面的方式。

方式2:循环填充固定长度数组

如果必须维持$arr的1000长度不变,用循环逐个赋值:

$processIds = $a.Id
for ($i = 0; $i -lt $processIds.Count; $i++) {
    if ($i -lt $arr.Length) {
        $arr[$i] = $processIds[$i]
    } else {
        Write-Warning "进程数超过数组长度1000,后续ID无法存入"
        break
    }
}

方式3:用CopyTo方法批量复制

借助.NET的CopyTo方法直接将ID集合复制到数组:

$processIds = $a.Id
if ($processIds.Count -gt $arr.Length) {
    Write-Warning "进程数超过数组容量,仅存入前1000个ID"
    $processIds[0..999].CopyTo($arr, 0)
} else {
    $processIds.CopyTo($arr, 0)
}

简化初始流程的小技巧

你可以跳过中间变量$a,直接提取纯ID数值,减少代码步骤:

$arr = [int64[]]::new(1000)
$processIds = Get-Process | Where-Object {$_.handles -gt 1000} | Select-Object -ExpandProperty Id
# 再用上面任意一种方法把$processIds存入$arr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:55:57