Powershell 将CSV文件拆分为两列

Powershell 将CSV文件拆分为两列,powershell,csv,Powershell,Csv,从500000行CSV开始,我需要按天和小时分割文件(第二列和第三列)。我已尝试修改组以包括小时,虽然我看到小时被添加到我的文件名中,但在导出的文件中没有得到任何结果 从事这项工作的教师: foreach ($group in $data | Group Day,hour) { $data | Where-Object { $_.Day -and $_.Hour -eq $group.Name } ConvertTo-Csv -NoTypeInformation | forea

从500000行CSV开始,我需要按天和小时分割文件(第二列和第三列)。我已尝试修改组以包括小时,虽然我看到小时被添加到我的文件名中,但在导出的文件中没有得到任何结果

从事这项工作的教师:

foreach ($group in $data | Group Day,hour) {
  $data | Where-Object { $_.Day -and $_.Hour -eq $group.Name }
  ConvertTo-Csv -NoTypeInformation | 
    foreach {$_.Replace('"','')} | 
    Out-File "$Path\Testfile_$($group.name -replace $regexA, '').csv"
样本数据:

Bob,1/27/2012,8:00,Basic,Operations Charlie,2/3/2012,9:00,Advanced,Production Bill,3/7/2012,10:00,Advanced,Production 鲍勃,2012年1月27日,8:00,基础,操作 Charlie,2012年2月3日,9:00,高级,生产
比尔,2012年3月7日,10:00,高级,生产您可以导入CSV,动态确定输出文件名,并将每条记录附加到匹配文件中:

Import-Csv 'C:\path\to\input.csv' | ForEach-Object {
  $filename = ('output_{0}_{1}.csv' -f $_.Day, $_.Hour) -replace '[/:]'
  $_ | Export-Csv "C:\path\to\$filename" -Append -NoType 
}

请注意,
Export Csv-Append
需要PowerShell v3或更高版本。

$data |其中对象{$\uu0.Day-和$\u0.Hour-eq$group.Name}
->
$\u0.group
包含组中的所有内容,无需重新扫描所有500000内容以再次尝试组成组
$\uu0.Day-和$\u0.Hour
没有按您的想法执行,这是一个布尔运算符,返回的
$True
永远不会与组名匹配。谢谢,当我可以重新启动以在早期版本上安装PSV3时,我将尝试此方法。您可以使用类似于
$\u124; ConvertTo Csv-NoType | Select Object-Skip 1 | Add Content
的方法。不那么优雅(你会失去标题),但应该有用。谢谢,我已经将此标记为答案,因为它正是我需要做的。