将数据从txt文件导入到CSV文件特定列

时间:2020-04-21 07:32:03

标签: powershell

enter code here我有两个文件,一个是txt,第二个是CSV。我想将txt文件导入到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 :(得分:0)

根据Signal15在这个问题In PowerShell, how do I convert DateTime to UNIX time?中的回答,有一种稍微简单的方法来将Unix格式的DateTime对象格式化。

$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
相关问题