获取csv文件的第一行和最后一行的内容

时间:2019-06-07 15:42:59

标签: .net powershell csv

我有一个超过3000行的CSV文件,但是我只想读取/获取第一个条目和最后一个条目的内容。

我有3列:BatchID,Transprinted和Date。我无法将行号映射到变量。

$csvdata=Import-Csv $file.FullName 

write-host $csvdata.Length

foreach($logInCsv in $csvdata)
{
    where $logInCsv.Batch_ID=$logInCsv.Length-1
    {
        $batchID=$logInCsv.Batch_ID
        $transactionID=$logInCsv.Transaction_id
        $printDate=$logInCsv.Date
    }

    Write-Host $batchID $transactionID $printDate
}

3 个答案:

答案 0 :(得分:1)

它应该很简单:

$csvdata = Import-Csv $file.FullName 
$csvdata | Select-Object -First 1
$csvdata | Select-Object -Last 1

答案 1 :(得分:1)

您不需要迭代行,
导入完第一个索引和最后一个索引就足够了。

带有示例输入文件:

which_result

此脚本:

> Get-Content .\SO_56497517.csv
BatchID,Transprinted,Date
1,abc,2019-01-13
2,def,2019-03-15
3,xyz,2019-06-06

产生以下输出:

## Q:\Test\2019\06\07\SO_56497517.ps1
$File = Get-Item '.\So_56497517.Csv'
$Csvdata=(Import-Csv $File.FullName)[0,-1]
$Csvdata

答案 2 :(得分:0)

要获取第一个和最后一个(无空单元格):

$csvdata = Import-Csv $file.FullName 
#re-assign without empty Cells
$csvdata = $csvdata | Where-Object {-not([string]::IsNullOrEmpty($_.ColumName))} 
$csvdata | Select-Object -First 1
$csvdata | Select-Object -Last 1