我有一个要求应该在Windows PowerShell或命令行中完成。我需要将CSV文件列拆分为.txt
个文件。
customer.csv
:
id,name
1,a
2,b
我需要将列拆分为文本文件(此处行和列计数是动态的)
输出文本文件应如下所示:
id.txt
:
1
2
name.txt
:
a
b
我在Google的帮助下找到了以下脚本:
$a = Import-Csv "D:\Final\customer.csv"
$b = $a[0] | Get-Member | select -Skip 1 | ? { $_.membertype -eq 'noteproperty'}
$b | % { $a | ft -Property $_.name | out-file "$($_.name).txt" }
但是输出文本文件带有列名,空格和放大器。等等。我无法自定义上面的代码。请提供任何帮助,如果有人需要更多信息,请告诉我。
谢谢,
Satish Kumar
答案 0 :(得分:1)
您的代码存在的问题是使用ft
(Format-Table
)格式化 CSV文件中的数据,即空格。
以下PowerShell脚本是更简洁的方法:
$csv = Import-Csv -Path 'D:\Final\customer.csv'
$columns = $csv | Get-Member -MemberType NoteProperty
foreach( $c in $columns )
{
foreach( $line in $csv )
{
Add-Content -Path $( $c.Name + '.txt' ) -Value $line.$( $c.Name )
}
}