我的代码有问题,当我在文件中导出时,文件中只显示一个对象,举个例子应该更好:
有了结果:
Field1 Test1
我想得到这个:
Field1 col1 col2 Field2 col3 col4 Test1 a b Test2 c d a2 b2 c2 d2
该文件 :
col1 col2 a b a2 b2
我已经尽力制作了一段代码,希望这对你有所帮助。我在代码中创建字段。
$csv = Import-Csv .\file.csv -Delimiter ';'
$dataTable = New-Object System.Data.DataTable
$dataTable.Columns.Add("Field1") | Out-Null
foreach ($s in "Test1")
{
$row = $dataTable.NewRow()
$row["Field1"] = $s
$dataTable.Rows.Add($row)
}
#my problem is there, I don't know how merge these two lines
$dataTable | export-csv -NoTypeInformation -Path ".\fileResult.csv"
$csv | Export-CSV -Path ".\fileResult.csv" -NoTypeInformation -Delimiter ";" -Append
在您的示例中,您有标题和一行。我假设您将在多行上进行行循环。
运行所有这些代码会给你错误;使用单行或循环版本。
$csv = Import-Csv .\file.csv -Delimiter ';'
#Single line
$csv | Add-Member -Type Noteproperty -Name "Field1" -Value "Test1"
$csv | Add-Member -Type Noteproperty -Name "Field2" -Value "Test2"
#looping over all lines
foreach($line in $csv({
$line | Add-Member -Type Noteproperty -Name "Field1" -Value "Test1"
$line | Add-Member -Type Noteproperty -Name "Field2" -Value "Test2"
}
# use Select-Object to get orders CSV
$csv | Select-Object Field1, col1, col2, Field2 | Export-CSV -Path ".\fileResult.csv" -NoTypeInformation -Delimiter ";" -Append
编辑:一些解释
您的CSV文件作为对象导入。标题(< code>col1,< code>col2)被自动指定为对象的NoteProperty成员。您可以通过运行< code>$csv | Get-Member来查看这一点。
您可以使用Add成员
将成员添加到CSV对象,指定成员类型、名称(标题)和值。
文档
导入-Csv添加-成员-导出-Csv选择-对象