CSV-файл поиска Powershell без заголовков и нестандартного разделителя; возвращать только определенные столбцы в результатах - PullRequest
0 голосов
/ 13 января 2020

Вот пример строки в CSV-файле, который у меня есть:

empcode ~ 1 ~ 0 ~ FirstName ~ LastName ~ Nickname ~ 1 ~ startdate ~ Supervisor ~ Местоположение ~ Department ~ JobTitle ~ Extension

Этот файл обновляется несколько раз в день с новой информацией о сотруднике, и мне нужно иметь возможность искать нового сотрудника, чтобы получить код его сотрудника (empcode), Имя (Имя), Фамилия (Фамилия), Ник (Псевдоним) ) и Должность (JobTitle).

Я собираюсь создать скрипт powershell для чтения этого файла и поиска имени пользователя. Тогда результаты, которые я хочу вернуть, будут выглядеть следующим образом:

empcode FirstName LastName Nickname Department

Я не уверен, что Get-Content или Import-CSV будут подходить для go. И руководство будет с благодарностью.

Спасибо!

1 Ответ

3 голосов
/ 13 января 2020

, поскольку я слишком ленив, чтобы предоставить данные, которые вы не предоставили, я пропущу чтение данных. Вы можете использовать Get-Content для этого. [ ухмылка ]

что это делает ...

  • получает строку из файла
  • создает список элементов заголовка
  • создает список заголовков для хранения
  • использует ConvertFrom-Csv с параметрами -Delimiter и -Header
  • отфильтровывает все, чего нет в списке хранителей
  • сохраняет его в $ Var
  • отображает его на экране

код ...

$InStuff = 'empcode~1~0~TheFirstName~TheLastName~TheNickname~1~startdate~Supervisor~Location~TheDepartment~JobTitle~Extension'

$Header = @'
EmpCode
1stNumber
2ndNumber
FirstName
LastName
NickName
3rdNumber
StartDate
SupervisorName
Location
Department
JobTitle
Extension
'@ -split [System.Environment]::NewLine

$PropsToKeep = @(
    'FirstName'
    'LastName'
    'NickName'
    'Department'
    )

$OutStuff = $InStuff |
    ConvertFrom-Csv -Delimiter '~' -Header $Header |
    Select-Object -Property $PropsToKeep

$OutStuff

вывод ...

FirstName    LastName    NickName    Department   
---------    --------    --------    ----------   
TheFirstName TheLastName TheNickname TheDepartment

В этот момент вы можете легко отправить $ Var на Export-Csv ... [ grin ]

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