我想使用Import-Csv
输出作为表格的表格,以获取特定列的第一个值的内容。
我可以做:
$File = '\webserverData_20190626.csv'
Import-Csv -Path $File -Delimiter ',' | select 'Effective Date' -First 1
这给了我预期的输出:
Effective Date
--------------
25-May-2019
我想看到的是:
Effective Date FileName
-------------- ---------
25-May-2019 Data_20190626.csv
我尝试了以下方法:
$File = '\webserverData_20190626.csv'
Import-Csv -Path $File -Delimiter ',' | select 'Effective Date', @{N='FileName';E={$_.Name}} -First 1
导致:
Effective Date FileName
-------------- ---------
25-May-2019
我应该如何继续?
您可以使用Select-Object
的属性哈希表实现此目的,并使用方法将文件路径通过
.Split()
方法拆分。[-1]
指示拆分结果中的最后一项。
$File = '\webserverData_20190626.csv'
Import-Csv -Path $File |
Select-Object 'Effective Date',@{n='FileName';e={$File.Split('')[-1]}} -First 1
我很惊讶没有pspath或任何东西。
import-csv $file -delimiter ',' |
select 'Effective Date', @{n='Filename';e={split-path -leaf $file}} -first 1
这是做事的略有不同的方法。[ grin ] #region >>> create a file to work with
节可以忽略 - 在那里提供您未提供的数据文件。
它通过使用POSH可以点缀整个集合的一个属性的方式获取EffectiveDate
信息,然后从结果数组中获取第一项。
它还避免使用EffectiveDate
而不是Effective Date
允许空间或其他特殊童童的副作用。如果您需要继续使用不良的嵌入式空间,请根据需要更改该字符串。
$File = "$env:TEMPData_20190626.csv"
#region >>> create a file to work with
@'
EffectiveDate
2019-06-25
2006-06-06
2005-05-05
'@ |
ConvertFrom-Csv |
Export-Csv -LiteralPath $File -NoTypeInformation
#endregion >>> create a file to work with
$Results = [PSCustomObject]@{
EffectiveDate = (Import-Csv -LiteralPath $File).EffectiveDate[0]
FileName = $File
}
$Results
输出...
EffectiveDate FileName
------------- --------
2019-06-25 C:TempData_20190626.csv