首页 > 解决方案 > 导出 .CSV 文件,更改与导入相同的名称和文件夹

问题描述

我需要更改传入 .csv 文件中的一些日期格式,以便以后可以正确处理它们。

我可以更改日期格式,但我不知道如何导出我的 .csv,因此它保持相同的名称并保留在同一个文件夹中。文件夹中不时会弹出多个.csv文件,这些文件必须一个一个处理。

一个 CSV 文件工作正常,也可以导出到另一个文件夹,但随后他将所有内容写入同一个 csv。

这就是我所拥有的:

Import-Csv -Path (Get-ChildItem -Path C:\Test2\input '*.csv').FullName | ForEach-Object { $_.SamplingDateTime = '{0:yyyyMMddhhmmss}' -f $(Get-Date $_.SamplingDateTime); $_.DateOfBirth = '{0:yyyyMMdd}' -f $(Get-Date $_.DateOfBirth) $_ } | export-csv -NoTypeInformation C:\Test2\input\*.csv

export-csv : 无法执行操作,因为路径解析为多个文件。此命令不能对多个文件进行操作。--> 有道理,但不知道该怎么做,对整个事情来说都是新的。..

也许通过快速绕道进入子文件夹?它必须通过powershell完成。

一些忠告?

标签: powershellcsv

解决方案


您无权首先使用 import-csv 访问管道中的文件路径。需要以某种方式跟踪输出文件的路径,以便在最终的 export-csv 命令中使用。尝试这样的事情

    Get-ChildItem -Path C:\Test2\input '*.csv' | ForEach-Object {
        $path = $_.FullName;
        $_.FullName | Import-Csv | ForEach-Object { 
            $_.SamplingDateTime = '{0:yyyyMMddhhmmss}' -f $(Get-Date $_.SamplingDateTime);  
            $_.DateOfBirth = '{0:yyyyMMdd}' -f $(Get-Date $_.DateOfBirth);
            $_ 
        } | export-csv -NoTypeInformation -Path $path     
    }

推荐阅读