如何将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
相关产品推荐
相关产品推荐

