Powershell - 在input-csv命令期间添加标头

时间:2018-02-23 08:34:49

标签: powershell csv header

我正在寻找将标头添加到没有标题的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())
} 

2 个答案:

答案 0 :(得分:2)

让我的评论回答:

数组构造运算符..生成一组数字,例如1..51, 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