У меня большой текстовый файл (* .txt) в следующем формате:
; KEY 123456
; Any Company LLC
; 123 Main St, Anytown, USA
SEC1 = xxxxxxxxxxxxxxxxxxxxx
SEC2 = xxxxxxxxxxxxxxxxxxxxx
SEC3 = xxxxxxxxxxxxxxxxxxxxx
SEC4 = xxxxxxxxxxxxxxxxxxxxx
SEC5 = xxxxxxxxxxxxxxxxxxxxx
SEC6 = xxxxxxxxxxxxxxxxxxxxx
Это повторяется для 350 - 400 клавиш. Это ключи HASP и коды SEC, связанные с ними. Я пытаюсь разобрать этот файл в файл CSV с KEY и SEC1 - SEC6 в качестве заголовков, с заполняемыми строками. Это формат, который я пытаюсь получить:
KEY,SEC1,SEC2,SEC3,SEC4,SEC5,SEC6
123456,xxxxxxxxxx,xxxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx
456789,xxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx,xxxxxxxxxx
Мне удалось получить скрипт для экспорта в CSV только с одним ключом в текстовом файле (мой тестовый файл), но когда я пытаюсь запустить его в полном списке, он экспортирует только последний ключ и сек. коды.
$keysheet = '.\AllKeys.txt'
$holdarr = @{}
Get-Content $keysheet | ForEach-Object {
if ($_ -match "KEY") {
$key, $value = $_.TrimStart("; ") -split " "
$holdarr[$key] = $value }
elseif ($_ -match "SEC") {
$key, $value = $_ -split " = "
$holdarr[$key] = $value }
}
$hash = New-Object PSObject -Property $holdarr
$hash | Export-Csv -Path '.\allsec.csv' -NoTypeInformation
Когда я запускаю его в полном списке, он также добавляет пару дополнительных столбцов с похожими свойствами вместо значений.
Буду признателен за любую помощь, чтобы заставить это работать.
Спасибо.