2014-01-08 49 views
0

我是使用PowerShell的全新软件,需要一些帮助。我有一个CSV名为test.csv,看起来像这样:读取.csv并将其导出为全新的csv文件 - PowerShell

---------------------------------- 
name   lastname  alias   
John   Smith   John    
Marie  Curie   Mary 
---------------------------------- 

的事情是,我需要两行的信息导出到两个不同的文件。该文件的名称应该是一个是“别名”列下

例子:

Name: John 

----------------------------------- 
name   lastname  alias   
John   Smith   John 

----------------------------------- 

Mary 

---------------------------------- 
name   lastname  alias   
Marie  Curie   Mary 

---------------------------------- 

我试着用下面的脚本:

Import-Csv c:\test\test.csv | foreach ($line){New-Item c:\test\$_alias.csv -type file} 

有什么建议?

回答

1

这个脚本应该适合你。它为每行创建一个新文件,使用alias字段作为文件名。

$Data = Import-Csv -Path c:\test\test.csv; 

foreach ($Item in $Data) { 
    Export-Csv -InputObject $Item -NoTypeInformation -Path ('c:\test\{0}.csv' -f $Item.Alias); 
} 
0

我的解决方案使用脚本循环和变量:

$path = "c:\test\" 
$csv = Import-Csv "$($path)test.csv" 
$csv | 
%{ 
    Export-Csv -InputObject $_ -NoTypeInformation -Path "$($path)$($_.Alias).csv" 
}