gpt4 book ai didi

powershell - 当通过管道传输文件时,Import-CSV返回null

转载 作者:行者123 更新时间:2023-12-02 23:46:57 25 4
gpt4 key购买 nike

我有一段代码应该使用管道字符定界符从目录中提取所有.CSV文件并导入它们。

$apeasy = dir .\APEasy\*.csv | Import-CSV -delimiter '|'

问题是这将返回null。毫无异常(exception),无论我做什么。
奇怪的是,这可行:
dir .\APEasy\*.csv

它返回一个FileInfo对象,该对象应该通过管道导入到Import-CSV中,作为要导入的文件。此外,这两个命令还可以工作:
$csvFiles = dir .\Processed_Data_Review -Filter *.txt | Import-CSV -header(1..19) -delimiter "$([char]0x7C)"
dir .\LIMS -Filter *.csv | Import-CSV | ? {$_.SampleName -like "????-*"}| Export-CSV -Path .\lims_output.txt -NoTypeInformation

我真的不知道这是怎么回事。我正在处理一个基本的管道分隔文件,每个字段都用引号引起来(这很好,我可以使用这些文件导入数据)。这里没什么特别的。该文件位于此处,Import-CSV出于某种原因未获取它。

所以我的问题是这样的:是什么原因导致“dir”抓取的文件无法通过管道导入到Import-CSV?

编辑:这样做的总体目标是在不事先知道其名称的情况下读取目录中的CSV文件,并将特定的列输出到各种输出文件中。

编辑:这是现在的代码行:
$apeasy = Get-ChildItem .\APEasy\*.csv | Select-Object -ExpandProperty FullName | Import-CSV -delimiter "$([char]0x7C)"

隔离Get-ChildItem语句,隔离Get-Child和Select-Object都返回它们应有的状态。目录中的csv文件列表及其完整路径的数组。但是,当它们通过管道导入到Import-CSV时,它们便消失了。变量上的Get-Member返回它为空。

最佳答案

Import-Csv仅接受来自管道的字符串(路径),因此,为了直接通过管道进行传递,您需要首先扩展路径:

dir .\APEasy\*.csv | 
select -expand fullname |
Import-CSV -delimiter '|'

关于powershell - 当通过管道传输文件时,Import-CSV返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com