Импортировать данные из txt файла в файл CSV, указав c столбец - PullRequest
0 голосов
/ 21 апреля 2020

enter code here У меня есть два файла, один из них txt, а второй - CSV. Я хотел бы импортировать TXT-файл в указанный c столбец «Пуск» в CSV-файле, то же самое действие будет повторяться для последнего столбца, но первые данные необходимо преобразовать во unix время.

Файл1 - unix дата

1586890800
1586930400
1586930400
1586959200
1586959200
1586941200
1586959200
1586941200
1586442240

CSV-файл:

ID (Link);CI;Status;Start;Scheduled End Date Time
126925;TESTA;Scheduled;14.04.2020 19:00;14.04.2020 20:00
127197;TESTB;Scheduled;15.04.2020 06:00;15.04.2020 14:00
158063;TESTAAA;Scheduled;15.04.2020 06:00;15.04.2020 10:00
163314;TESTBAAA;Scheduled;15.04.2020 14:00;22.04.2020 23:00
167023;TESTAdsadasd;Scheduled;15.04.2020 14:00;22.04.2020 23:00
177425;TESTBasdasd;Scheduled;15.04.2020 09:00;15.04.2020 12:00
178658;sadfsdfsd;Scheduled;15.04.2020 14:00;16.04.2020 23:00
179558;TESTBsdfsdfsdf;Scheduled;15.04.2020 09:00;20.04.2020 05:00
179558;TESTCEST;Scheduled;09.04.2020 14:24;20.04.2020 05:00

Пока у меня есть что-то вроде этого:

$Start = Get-Content "C:\Users\start.txt"
Import-Csv "C:\Users\table.csv"  -Delimiter ';' | 
   ForEach-Object { $_.Start = $Start; $_ } | 
  Export-Csv "C:\Users\table.csv" -Delimiter ';' -NoTypeInformation

Результат: ID (ссылка); CI; Статус; Начало; Запланированная дата окончания Время

126925;TESTA;Scheduled;1586890800;14.04.2020 20:00
127197;TESTB;Scheduled;1586930400;15.04.2020 14:00
158063;TESTAAA;Scheduled;1586930400;15.04.2020 10:00
163314;TESTBAAA;Scheduled;1586959200;22.04.2020 23:00
167023;TESTAdsadasd;Scheduled;1586959200;22.04.2020 23:00
177425;TESTBasdasd;Scheduled;1586941200;15.04.2020 12:00
178658;sadfsdfsd;Scheduled;1586959200;16.04.2020 23:00
179558;TESTBsdfsdfsdf;Scheduled;1586941200;20.04.2020 05:00
179558;TESTCEST;Scheduled;1586442240;20.04.2020 05:00

1 Ответ

0 голосов
/ 21 апреля 2020

Согласно ответу Signal15 на этот вопрос Как в PowerShell преобразовать DateTime в UNIX время? существует несколько простой способ форматирования объекта DateTime в формате Unix.

$CSV = Import-Csv C:\Users\table.csv  -Delimiter ';'
    $CSV | ForEach-Object {
    if ($_.Start){$_.Start = [Math]::Floor([decimal](Get-Date(Get-Date $_.Start).ToUniversalTime()-uformat "%s"))}
    if($_.'Scheduled End Date Time'){$_.'Scheduled End Date Time' = [Math]::Floor([decimal](Get-Date(Get-Date $_.'Scheduled End Date Time').ToUniversalTime()-uformat "%s"))}
}  
$CSV | 
Export-Csv C:\Users\newtable.csv -Delimiter ';' -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...