我有一个PowerShell 5.0函数,我试图用它来返回一些下游活动中使用的数据表。但是,每当我将其放入变量时,似乎都会返回重复项:
function GetTable {
$tbl = New-Object "System.Data.DataTable"
$tbl.Columns.Add("testNum").DataType = [string]
for($i=0; $i -lt 3; $i++){
$tbl.Rows.Add($i)
}
Write-Host $tbl.Rows.Count
return $tbl
}
$test = GetTable
$test.Rows.Count
输出:
3
6
为什么函数在返回数据表时会复制数据?
答案 0 :(得分:2)
这是因为Add
方法返回添加的元素,因此它也会进入管道。你可以通过将结果传递给Out-Null
来简单地解决这个问题:
function GetTable {
$tbl = New-Object "System.Data.DataTable"
$tbl.Columns.Add("testNum").DataType = [string]
for($i=0; $i -lt 3; $i++){
$tbl.Rows.Add($i) | Out-Null
}
Write-Host $tbl.Rows.Count
return $tbl
}
$test = GetTable
$test.Rows.Count