我正在寻找将标头添加到没有标题的csv文件中,而没有关于列号的信息。
我有csv文件的代码,我知道列数:
$Content = Import-Csv "C:\temp\input.csv" -Delimiter ';' -Header "1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"
哪种方法可以自动创建像我一样的标题? 是"标题"参数可以是字符串值的arraylist吗?
我应该编写类似这样的代码:
$array = New-Object System.Collections.ArrayList
for ($i=1; $i -lt $Columns; $i++)
{
$array.add($i.ToString())
}
答案 0 :(得分:2)
让我的评论回答:
数组构造运算符..
生成一组数字,例如1..5
是1, 2, 3, 4, 5
,如果您将一个数字数组传递给-Header
,它将自动转换为字符串,因为PowerShell类型的工作方式 - 标头需要一个字符串数组。
所以你可以创建一个包含多个数字的数组,如下所示:
-Header (1..$Columns)
答案 1 :(得分:0)
好的,我发现了我的错误:
$CSVFile = Get-Content $csvTemp
$Columns = ($CSVFile[0].split(";")).Count
[string[]]$tab = @()
for ($i=1; $i -lt $Columns; $i++){
$tab+= $i.ToString()
}
$content = import-csv "c:\temp\test.csv" -delimiter ';' -header $tab