如何在不添加空列的情况下偏移system.Data.DataTable?

时间:2018-12-11 17:19:11

标签: powershell

为了移出该输出表,我必须创建一个空列,将连字符放在空白处(请参见图片)。我希望具有与图片相同的输出,但是没有连字符,换句话说,只有一个空列。

如何在不需要空白列的情况下偏移此表?

Current output

How I would like it to appear

我的代码:

$outputTable = New-Object system.Data.DataTable “$TableName”
#servername     totaldbs    activedbs   passivedbs  preferencecountlist     mounteddbs      dismounteddbs   dagname
$col0 = New-Object system.Data.DataColumn "     ",([string])
$col1 = New-Object system.Data.DataColumn ServerName,([string])
$col2 = New-Object system.Data.DataColumn TotalDbs,([string])
$col3 = New-Object system.Data.DataColumn ActiveDbs,([string])
$col4 = New-Object system.Data.DataColumn PassiveDbs,([string])
$col5 = New-Object system.Data.DataColumn PreferenceCountList,([string])
$col6 = New-Object system.Data.DataColumn MountedDbs,([string])
$col7 = New-Object system.Data.DataColumn DismountedDbs,([string])
$col8 = New-Object system.Data.DataColumn DagName,([string])

$outputTable.columns.add($col0)
$outputTable.columns.add($col1)
$outputTable.columns.add($col2)
$outputTable.columns.add($col3)
$outputTable.columns.add($col4)
$outputTable.columns.add($col5)
$outputTable.columns.add($col6)
$outputTable.columns.add($col7)
$outputTable.columns.add($col8)

foreach($result in $results)
{
    [string]$resultSplit = $result;
    $resultSplit1 = $resultSplit.Split("|"); # -split "|";
    $row = $outputTable.NewRow()

    if ($resultSplit1[6] -ne "")
    {
        $temp6 = $resultSplit1[6];
    }
    else
    {
        $temp6 = "0";
    }

    $temp7 = $resultSplit1[7];

    $row.ServerName = $resultSplit1[0];
    $row.TotalDbs = $resultSplit1[1];
    $row.ActiveDbs = $resultSplit1[2];
    $row.PassiveDbs = $resultSplit1[3];
    $row.PreferenceCountList = $resultSplit1[4];
    $row.MountedDbs = $resultSplit1[5];

    if ($resultSplit1[6] -ne "")
    {
        $row.DismountedDbs = $resultSplit1[6];
    }
    else
    {
        $row.DismountedDbs = "0";
    }

    $row.DagName = $resultSplit1[7];        
    $outputTable.Rows.Add($row);
}

$outputTable | format-table -AutoSize

1 个答案:

答案 0 :(得分:2)

($outputTable | format-table -AutoSize | Out-String) -Split '[\r\n]+' | ForEach {"    $_"}

或使用.Replace

($outputTable | format-table -AutoSize | Out-String) -Replace '[\r\n]+', "`r`n    "