Исходя из вашего описания, я думаю, что содержимое ваших файлов выглядит примерно так:
Title: MyFile
Conditions: Critical
Date: 2020-02-23T11:33:02
x y z t n m lag lead bus cond rema dock
sdasd asdfafd awef wefaewf aefawef aefawrgt eyjrteujer bhtnju qerfqeg 524rwefqwert q3tgqr4fqr4 qregq5g
avftgwb ryhwtwtgqreg efqerfe rgwetgq ergqreq erwf ef 476j q4 w4th2 ef 42r13gg asdfasdrv
Вы всегда можете прочитать такие файлы, набирая их, построчно и сохраняя только те строки, которые вы на самом деле хочу. В вашем случае данные находятся в строке 4-55 (включая заголовки).
Чтобы получить эти данные, вы можете использовать эту команду:
Get-Content MyFile.txt | Select-Object -skip 3 -First 51
Если вы можете подтвердить, что данные - это данные, которые вы хотите, вы можете начать работу над следующей проблемой - разделителем нескольких пробелов.
Поскольку (количество) пробелов не является фиксированным, вам нужно заменить несколько пробелов одним пробелом , Предполагая, что значения, которые вы ищете, без пробелов, вы можете добавить это в свой конвейер:
Get-Content C:\MyFile.txt | Select-Object -skip 3 -First 51 | ForEach-Object {$_ -replace '( )+',' '}
Часть '() +' означает один или несколько пробелов.
Теперь вы иметь правильные данные CSV. Чтобы преобразовать это в правильный объект, вам просто нужно преобразовать данные из csv следующим образом:
ConvertFrom-Csv -InputObject (Get-Content C:\MyFile.txt | Select-Object -skip 3 -First 51 | ForEach-Object {$_ -replace '( )+',' '}) -Delimiter ' '
Отсюда довольно просто выбрать нужные значения:
ConvertFrom-Csv -InputObject (Get-Content C:\MyFile.txt | Select-Object -skip 3 -First 51 | ForEach-Object {$_ -replace '( )+',' '}) -Delimiter ' ' | Select-Object x,y,z,n,m,rema
Вам также нужно завершить все файлы, поэтому вы можете начать с файлов, подобных этим:
foreach ($file in (Get-Content C:\MyFiles)){
ConvertFrom-Csv -InputObject (Get-Content $file.fullname | Select-Object -skip 3 -First 51 | ForEach-Object {$_ -replace '( )+',' '}) -Delimiter ' ' | Select-Object x,y,z,n,m,rema
}
Возможно, вы захотите разделить код на более читаемый формат, но это должно в значительной степени покрыть это.