我已经为一个看似简单的事情而奋斗了一个多小时……但我做不到
说明:
我导入了一个看起来像这样的CSV,他为空:
DAYS | PC1 | PC2
我有一个变量“ $ Days ”,它看起来像这样:
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
}
但是他告诉我找不到属性“ Days”。
我也尝试这样的事情:
$CSV | Select-Object @{Name='Days';Expression={$forearch ($row in $Days){$row}}},*
但是再没有结果,我不知道我在做什么错...
预先感谢您的帮助。
答案 0 :(得分:1)
您的方法存在的问题是文件为空,因此不会为$ CSV生成任何属性
一个简单的解决方案是通过迭代$ Days并构建一个[PSCustomObject]
$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 :(得分: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
您不必仅添加一个自定义对象即可添加字段。您可以
选择
,它也会为您添加它们。