Powershell 导出.CSV文件,并更改导入文件的名称和文件夹

Powershell 导出.CSV文件,并更改导入文件的名称和文件夹,powershell,csv,Powershell,Csv,我需要更改传入的.csv文件中的一些日期格式,以便以后可以正确处理它们 我可以更改日期格式,但我不知道如何导出我的.csv,因此它保持相同的名称并保留在相同的文件夹中。文件夹中会不时弹出多个.csv文件,这些文件必须逐个处理 一个CSV文件工作正常,也可以导出到另一个文件夹,但他会将所有内容写入同一个CSV 这就是我得到的: Import Csv-Path(Get ChildItem-Path C:\Test2\input'*.Csv').FullName | ForEach Object{$$

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

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

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

这就是我得到的:

Import Csv-Path(Get ChildItem-Path C:\Test2\input'*.Csv').FullName | ForEach Object{$$.SamplingDateTime='{0:yyyyymmddhhmmss}'-f$(Get Date$.SamplingDateTime);$.DateOfBirth='{0:yyyyyymmdd}-f$(Get Date Date DateOfBirth)$\u124; export-notype信息C:\Test2\input\*.Csv

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

也许可以快速绕道进入子文件夹?这必须通过地狱来完成


一些建议?

您无法使用导入csv优先访问管道中的文件路径。需要以某种方式跟踪输出文件的路径,以便在最终的导出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     
    }

-append
标志是否就是这样做的,并且只附加到文件而不替换您所做的更改?您可以在
Foreach($Csv-in(Get-ChildItem…){
这样您就可以访问参数
$csv.FullName$csv.Name$DirectoryName
以及每个csv可能需要的其他文件。因此,它们可以用于
导出Csv
我认为
导出Csv-NoTypeInformation C:\Test2\input\*.Csv
应该是单个离散文件,而不是通配符值。e、 g.
export csv-NoTypeInformation C:\Test2\input\result.csv
。是,“-append”将行添加到csv中,但不替换,并卡在循环中(不断添加行)文件得到调整,但之后为空;导入Csv:必须指定-Path或-LiteralPath参数,但不能同时指定两者。在第3行char:10+$| Import Csv | ForEach Object{我相信我们在DateOfBirth行和下一行之间缺少了分号和/或换行符。请再试一次,在导入Csv之前再做一次更改。将$|更改为$|全名确实找到了它!很有效。谢谢!(我在最后一个$|之前加了一个;)。