如何读取,转换和输出文件夹中的所有文件?

skyline01

我在PowerShell中工作。我的PSVersion是3.0。我有一个包含几个CSV文件的文件夹。每个文件中可以包含几列,并在第一行包含列标题。列的顺序将始终不相同。我只需要从每个文件中提取某些列。我需要提取的列在所有文件中都是相同的,并且所有文件都至少具有我需要提取的列(通常更多)。提取后,我需要将为每个文件提取的列导出到另一个文件夹中的相应CSV。例如,我的输入文件夹中有以下2个文件:

file1.csv

Col1 Col2 Col3 Col4 
a 1 of 0.0

file2.csv

Col4 Col1 Col3 Col2 
1.0 bx 2

我需要获取仅列Col1,并Col4从每个文件。因此,我希望输出以下文件:

file1.csv

Col1 Col4 
a 0.0

file2.csv

Col1 Col4 
b 1.0

下面是我的脚本:

$inputDirectory = 'C:\some_path\input\';
$outputDirectory = 'C:\another_path\output\';

$inputFiles = Get-ChildItem -Path $inputDirectory -Recurse -Include *.csv;

ForEach-Object {   
    Import-Csv $inputFiles |
        Select-Object -Property Col1, Col4 |
        Export-Csv $outputDirectory + $inputFiles.Name -NoTypeInformation
    }

我在使用Export-Csv命令时遇到麻烦我不断收到以下错误:

找不到接受参数'System.Object {}'的位置参数

因此,关于我的管道的某些信息Select-Object是错误的。如何解决此错误并实现目标?

马克西米利安·波斯兹利(Maximilian Burszley)

您的逻辑是合理的,但是语法没有意义。

$Path = 'C:\Temp\Input'
$Output = 'C:\Temp\Output'

$Files = Get-ChildItem -Path $Path -Recurse -Include '*.csv'

ForEach ($File in $Files)
{
    Import-Csv -Path $File.FullName | Select-Object -Property @('Col1','Col4') |
        Export-Csv -Path (Join-Path $Output $File.Name) -NoTypeInformation -Append
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

读取文件夹和子文件夹中的所有文件-进度和大小

如何从Java读取文件夹中的所有文件?

如何随机读取文件夹中的所有文件

OS X:如何输出文档文件夹的所有嵌套文件

如何使用spring-batch和MultiResourceItemReader读取文件夹中的所有文件?

如何列出文件夹中的所有文件然后选择多个文件

独立排序文件夹中的所有文件,每个文件都有一个输出文件

列出文件大小给定结构中的所有文件夹和子文件夹

导入和导出文件夹中的所有.vue文件

以cmd列出所有文件夹和子文件夹,但不列出文件

如何在eclipse中创建输出文件夹

如何使用angular js列出文件夹中的所有文件名

如何列出文件夹的所有属性

列出文件夹中的所有文件以及子文件夹

列出文件夹中的所有文件ID(无子文件夹)

将与模式匹配的行从文件夹中的所有文本文件提取到单个输出文件

如何使用MSBuild在输出文件夹中自动创建文件夹?

从文件夹Python导入和读取所有文件

如何使用python和bs4读取和覆盖文件夹中的所有* .txt文件?

此代码如何列出文件夹中的所有项目?

如何使用Groovy读取文件夹中的所有文件并替换文件中的模式

逐行读取文件夹中的所有.txt文件

从文件夹中读取所有.txt文件?

如何在SSIS中基于文件夹的创建日期读取文件夹的所有文件?

在python的zip文件中列出文件夹中的所有文件

SSIS中用于输出文件的文件夹结构和输出文件的命名约定

如何将文件夹中的所有odt文件转换为Microsoft Word文件?

如何列出文件夹中所有.zip文件的内容以及特定文件的grep?

如何忽略提名文件夹中的_vti_cnf和_vti_pvt文件夹以及提名文件夹的所有子文件夹?