在csv中查找上一个单元格的值

时间:2019-04-09 09:33:07

标签: powershell

我试图在以下csv的同一列中找到前一个单元格的单元格值。我将获取日期并为其指定名称,并在该列中找到先前的单元格值。

startDate  endDate     Name
20-03-2019 30-03-2019  marchLogs
01-03-2019 15-03-2019  aprilLogs

$dt = Get-Date
Import-CSV filepath.csv
foreach($item in $csv)
{
$Start = $($item.StartDate)
$End = $($item.EndDate)
if($dt -gt $Start -and $dt -lt $End )
{
$finalName = $($item.Name)
# $previousName 
}
}

在上面的代码中,我将$final的名称值设为aprilLogs,现在我需要在新值marchLogs中使用先前的名称$previousName

2 个答案:

答案 0 :(得分:0)

有几种方法:

  • 如果满足条件,请使用上一个索引按索引访问csv数据
  • 如果满足条件,则使用提示并存储先前的条目...

或者:

$finalName = (Import-CSV filepath.csv | 
 Where {[datetime]::parseexact($_.EndDate,"dd-MM-yyyy",[CultureInfo]::InvariantCulture) -lt (Get-Date)} | 
  Sort {[datetime]::parseexact($_.EndDate,"dd-MM-yyyy",[CultureInfo]::InvariantCulture)} | Select -Last 1).Name

答案 1 :(得分:0)

$dt = Get-Date
$csv = Import-Csv "filepath.csv"
foreach($item in $csv)
{
    $Start = $($item.StartDate)
    $End = $($item.EndDate)
    if($dt -gt $Start -and $dt -lt $End )
    {
        $index = $csv.Indexof($item)
        $previous = $csv[$index-1]
    }
}
$previous.Name