从变量列表列添加行CSV

问题描述 投票:0回答:2

我一直在争取过的东西,似乎很简单,以我一个小时......但我不能这样做

说明:

我导入CSV谁是这样的,他是空的:

DAYS | PC1 | PC2

我有一个变量“$日”谁是这样的:

PS C:\Users> $Days
12/02/2019
13/02/2019
14/02/2019
15/02/2019
16/02/2019

所有我想要的是每一行添加到“天”列...

喜欢 :

   DAYS    | PC1 | PC2
12/02/2019 |     |
13/02/2019 |     |
14/02/2019 |     |
15/02/2019 |     |
16/02/2019 |     |

我试着这么做:

Foreach ($row in $Days){
    $CSV.Days = $row
}

但他告诉我,物业“天”是找不到的。

我也尝试这样的事情:

$CSV | Select-Object @{Name='Days';Expression={$forearch ($row in $Days){$row}}},*

但没有结果再次,我不知道我在做什么错?

预先感谢您的帮助。

list powershell csv append
2个回答
1
投票

你的方法的问题是,该文件是空的因此没有属性为$生成CSV

一个简单的解决方案是通过迭代$天,建设[PSCustomObject]生成CSV $

$Days = @'
12/02/2019
13/02/2019
14/02/2019
15/02/2019
16/02/2019
'@ -split '\r?\n'

$CSV = $Days | ForEach-Object{
    [PSCustomObject]@{
        DAYS = $_
        PC1  = $NULL
        PC2  = $NULL
    }
}

$CSV
$CSV | Export-Csv .\YouNameIt.csv -NoTypeInformation

1
投票

或者,一个较短的版本:

$CSV-out = $csv | ForEach-Object{[PSCustomObject]@{DAYS = $_}}|Select days, PC1, PC2

$ CSV是值的列表。如同

$csv = @("12/02/2019","13/02/2019","14/02/2019","15/02/2019","16/02/2019")

然后,如果您做了$ CSV | FT

    DAYS       PC1 PC2
    ----       --- ---
12/02/2019         
13/02/2019
14/02/2019
15/02/2019
16/02/2019

您不必包括自定义对象只是添加字段。你可以做一个

选择

它会增加他们对你。

© www.soinside.com 2019 - 2024. All rights reserved.