我一直在努力研究这一点,并且正在尝试做一些我不确定在Powershell中可能实现的事情。我有这样的CSV文件,其中包含标题:
Field1,Field2,Field3
Field1aaa,abc,rst
Field2bbb,ghi,xyz
最后,我希望获取CSV并以特定格式导出到文本文件。对于我正在使用的程序,需要以这种方式对其进行格式化。有点像JSON文件,但不完全相同。我正在尝试为每个CSV行创建必要的文本块。这就是我实际上试图获取输出文本文件的内容
Fieldaaa {
field2<abc>
field3<rst>
}
Field2bbb {
field2<ghi>
field3<xyz>
字段1就像上面列出的每个组的标题一样。我已经完成了在csv中的加载:
$userobjects = Import-CSV C:\temp\testcsv2.csv.
但是,我不知道如何从这里开始。另外,我要添加的文本输出是Tab键。我想我可以通过在知道如何解析此CSV并导出为文本后插入\ t来完成此操作。我可以使用Powershell 5.1,因为我正在使用该版本的Server 2016和Windows 10环境。请让我知道是否可以澄清其他内容。
答案 0 :(得分:2)
您只需要执行以下步骤:
这是您执行此操作的一种方法:
$outString = ""
$userobjects = Import-CSV C:\test\test.csv
foreach ($object in $userobjects) {
$outString = @"
$outString
$($object.Field1) {
field2<$($object.Field2)>
field3<$($object.Field3)>
}
"@
}
Set-Content C:\test\out.txt $outString
或者也许更强大的方法是
Import-Csv C:\test\test.csv | ForEach-Object {
Write-Output @"
$($_.Field1) {
field2<$($_.Field2)>
field3<$($_.Field3)>
}
"@ } > c:\test\out.txt
如果您还不了解,我建议您查看ss64以获得Powershell示例