PowerShell函数返回DataTable中的重复项

时间:2018-02-10 14:02:47

标签: powershell

我有一个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

为什么函数在返回数据表时会复制数据?

1 个答案:

答案 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