在PowerShell中用分号分割CSV文件

2023-12-12

这是我系统中的模板,因此我无法在此处修改任何内容。基本上我想根据第 3 列“注释”上的值拆分为多个文件。



DeliveryType;ShippingDate;Comment;SellerSku;Requested
send;05/29/16 03:10 PM;HCM - VN101YK- MK1001;EX110OTBCE8QV;3
send;05/29/16 03:1PM;HN - VN101YK;EX110OTBCE8XHY;1
  

我已经尝试过这段代码并更改了文件名/文件夹,但它没有响应任何内容。

Import-Csv test.csv | Group-Object -Property "Comment" | ForEach-Object {
    $path = $_.Name + ".csv";
    $_.Group | Export-Csv -Path $path -NoTypeInformation
}

我实际上认为你不需要使用Group完全做到这一点:

$CSV = Import-csv test.csv -Delimiter ';'

$CSV | ForEach-Object {
    $_ | Export-CSV "$($_.comment).csv" -Append -NoTypeInformation
}

解释:

  • 使用导入 CSVImport-CSV,指定文件由分号分隔(默认情况下需要逗号)。
  • 将导入的结果通过管道传输到ForEach-Object loop
  • 循环内$_代表管道中的当前项目(例如 CSV 中的当前行),我们可以使用以下命令访问它的属性.符号。
  • 获取 CSV 中的当前行并将其及其名称附加到 CSV 文件中。我们使用子表达式运算符$( )访问.comment双引号字符串中当前管道对象的属性。
  • 另请注意,我认为-Appendswitch 要求您使用 PowerShell 版本 3 或更高版本。
  • 该命令还包括-NoTypeInformation开关,它阻止 PowerShell 在输出顶部放置不必要的对象描述注释行,如果您随后在 Excel 中打开可见文件,这可能会很烦人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在PowerShell中用分号分割CSV文件 的相关文章

随机推荐