【发布时间】:2017-11-09 09:16:23
【问题描述】:
我在 PowerShell 中工作。我的 PSVersion 是 3.0。我有一个文件夹,里面有几个 CSV 文件。每个文件中可以有多个列,并且在第一行包含列标题。列的顺序并不总是相同的。我只需要从每个文件中提取某些列。我需要获取的列在所有文件中都是相同的,并且所有文件都至少有我需要获取的列(通常更多)。提取后,我需要将每个文件提取的列导出到不同文件夹中的相应 CSV。例如,我的输入文件夹中有以下 2 个文件:
file1.csv:
file2.csv:
我只需要从每个文件中获取列Col1 和Col4。所以,我希望输出以下文件:
file1.csv:
file2.csv:
下面是我的脚本:
$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 的管道有些问题是错误的。如何解决此错误并实现我的目标?
【问题讨论】:
标签: powershell