需要有关PowerShell列循环的帮助

时间:2015-03-09 13:11:10

标签: shell powershell

我有一个要求应该在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

1 个答案:

答案 0 :(得分:1)

您的代码存在的问题是使用ftFormat-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 )
    }
}