【发布时间】:2021-12-12 04:03:38
【问题描述】:
我有一堆要转换为 CSV 的文本文件。 例如,我有几百个看起来像这样的 txt 文件
Serial Number : 123456
Measurement : 5
Test Data : 125
每个文件都被转换为 CSV 上的一行。我不知道如何为文件名和上次写入时间添加额外的列。
这是我目前拥有的将所有数据从 txt 复制到 CSV
$files = "path"
function Get-Data {
param (
[Parameter (Mandatory, ValueFromPipeline, Position=0)] $filename
)
$data=@{}
$lines=Get-Content -LiteralPath $filename | Where-Object {$_ -notlike '*---*'}
foreach ($line in $lines) {
$splitLine=$line.split(":")
$data.Add($splitLine[0],$splitLine[1])
}
return [PSCustomObject]$data
}
$files | Foreach-Object -Process {Get-Data $_} | Export-Csv -Path C:\Scripts\data.csv -NoTypeInformation -Force
我试过这样做,但它没有添加任何东西。我可能试图以错误的方式添加数据。
$files = "path"
function Get-Data {
param (
[Parameter (Mandatory, ValueFromPipeline, Position=0)] $filename
)
$data=@{}
$name = Get-ChildItem -literalpath $filename | Select Name
$data.Add("Filename", $name)
$lines=Get-Content -LiteralPath $filename | Where-Object {$_ -notlike '*---*'}
foreach ($line in $lines) {
$splitLine=$line.split(":")
$data.Add($splitLine[0],$splitLine[1])
}
return [PSCustomObject]$data
}
$files | Foreach-Object -Process {Get-Data $_} | Export-Csv -Path E:\Scripts\Pico2.csv -NoTypeInformation -Force
【问题讨论】:
标签: powershell csv text-parsing