使用两个等长数组执行数学运算
我正在做的事情非常简单,以至于我都在努力寻找答案。我正在尝试从彼此中减去两个相等长度的数组
$free_array = get-wmiobject -class win32_logicaldisk | select -ExpandProperty freespace
$size_array = get-wmiobject -class win32_logicaldisk | select -ExpandProperty size
ForEach ($size in $size_array)
{
Write-Host Statistic: $size - $freespace
}
回答
我认为 PowerShell 没有内置函数来同时映射多个数组,因此您可以使用范围运算符,然后根据需要对两个数组进行索引:
foreach ($Index in (0..($free_array.Count - 1))) {
Write-Host Statistic: ($size_array[$Index] - $free_array[$Index])
}
但是,您的任务也可以这样完成,我认为这会更具可读性:
$LogicalDisks = Get-CimInstance -ClassName Win32_LogicalDisk
foreach ($LogicalDisk in $LogicalDisks) {
Write-Host Statistic: ($LogicalDisk.Size - $LogicalDisk.FreeSpace)
}
- Upvoted for the "However..." part.