Изменить функцию CSV с Int на Array - PullRequest
0 голосов
/ 12 июня 2018

Я не совсем понял, как изменить мою функцию, которая использует целое число в качестве входных данных, на функцию, которая может принимать массив входных данных.Цель состоит в том, чтобы изменить некоторые ячейки в 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 голосов
/ 12 июня 2018

Вы можете использовать оператор -contains здесь.Вы можете передать массив идентификаторов в функцию, а затем во время итерации по 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

Оператор -contains будет работать, если вы передадитеодиночные или множественные идентификаторы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...