需要有关PowerShell列循环的帮助吗
我有一个要求,应该在windows PowerShell或命令行中完成。我需要将CSV文件列拆分为需要有关PowerShell列循环的帮助吗,shell,powershell,Shell,Powershell,我有一个要求,应该在windows PowerShell或命令行中完成。我需要将CSV文件列拆分为.txt文件 customer.csv: id,name 1,a 2,b 我需要将列拆分为文本文件(这里的行数和列数是动态的) 输出文本文件应如下所示: id.txt: 1 2 a b name.txt: 1 2 a b 我在Google的帮助下找到了以下脚本: $a = Import-Csv "D:\Final\customer.csv" $b = $a[0] | Get-Member
.txt
文件
customer.csv
:
id,name
1,a
2,b
我需要将列拆分为文本文件(这里的行数和列数是动态的)
输出文本文件应如下所示:
id.txt
:
1
2
a
b
name.txt
:
1
2
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您的代码的问题在于使用
ft
(格式表
)对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 )
}
}