这是我的代码,
$fourCount = 0
$rowCount = 0
foreach($row in $ResultsTable){
if ($row.'RowType' -eq 6) {
if ($fourCount -gt 0) {
#Sort-Object {$row.'CheckDate'} - descending
$remainAmount = $currentAmount - $checkAmount
$ResultsTable.Rows[$rowCount - 1].'Final' = $remainAmount
$currentAmount = @()
$fourCount = 0
$remainAmount = 0
}
$checkAmount = [int]$row.'amount'
$rowCount = $rowCount + 1
} elseif ($row.'RowType' -eq 4) {
if($row.'current'.Length -eq $NULL) {
Continue
} else {
$currentAmount += [int]$row.'current'
$rowCount = $rowCount + 1
$fourCount++
}
} else {
Continue
}
}
我运行代码时遇到的问题是
方法调用失败,因为[System.Object []]不包含 方法名为'op_Subtraction'。
$ remainAmount = $ currentAmount - <<<< $ checkAmount CategoryInfo:InvalidOperation:(op_Subtraction:String)[],RuntimeException
FullyQualifiedErrorId:MethodNotFound
从我读到的内容,我将所有内容转换为int但仍然无法运行。谁能告诉我为什么?
答案 0 :(得分:3)
在第9行,您将$ currentAmount初始化为空数组:
$currentAmount = @()
然后你将[int]项积累到该数组中:
$currentAmount += [int]$row.'current'
所以你拥有的是[int]数组。
最后你尝试用该数组进行减法运算:
$remainAmount = $currentAmount - $checkAmount
它失败了。
错误消息中的[Type []]语法表明它是一个数组,你不能对它进行减法运算。