将CSV函数从Int更改为Array

时间:2018-06-12 07:51:33

标签: powershell csv

我还没有弄清楚如何将使用整数作为输入的函数更改为可以接受输入数组的函数。目的是在单元格nummer(输入)处更改CSV中的某些单元格。我想启用该函数一次更改一个单元格数组。

这是我得到的:

function Verander-Data {
    Param($User)
    $csv = Import-Csv 'C:\Deep Dive Windows PowerShell\KolomToegevoegd.csv' -Delimiter ";"
    $currentDate = Get-Date -Format yyyy-MM-dd
    foreach ($row in $csv) {
        if ($row.klantnummer -eq $user) { $row.status = "Verleden" } 
        if ($row.klantnummer -eq $user) { $row.uitgangsdatum = $currentDate }
    }
    $csv | Export-Csv 'C:\Deep Dive Windows PowerShell\Verander-Data.csv' -Delimiter ";"  
}

Verander-Data -User(11)

以下是CSV的示例:

Klantnummer Nationaliteit   Geslacht    Title   Voornaam    MiddleInitial
1   Dutch   female  Ms. Josanne S
2   Dutch   female  Mrs.    Inci    K
3   Dutch   female  Mrs.    Lusanne G
4   Dutch   female  Dr. Husna   M

1 个答案:

答案 0 :(得分:3)

您可以在此处使用-contains运算符。您可以将一个ID数组传递给该函数,然后在迭代csv时检查该数组是否包含当前$row.klantnummer

Function Verander-Data
{
  Param($User)
  $csv = Import-Csv 'C:\Deep Dive Windows PowerShell\KolomToegevoegd.csv' -Delimiter ";"
  $currentDate = Get-Date -Format yyyy-MM-dd
  foreach ($row in $csv) {
    if ($user -contains $row.klantnummer) { 
      $row.status = "Verleden" 
      $row.uitgangsdatum = $currentDate 
    }
  }
  $csv | Export-Csv 'C:\Deep Dive Windows PowerShell\Verander-Data.csv' -Delimiter ";"  
}

Verander-Data -User 10
Verander-Data -User 11,15,19

如果传递单个或多个ID <{p>,-contains运算符将起作用