Powershell Get-Content Ordner auslesen
Hallo Community,
ich habe da mal eine Frage zu Get-Content und komme nicht weiter. Eventuell hat hier jemand eine Idee oder Ansatz wie ich es lösen kann.
Ich habe einen Ordner in den täglich 10-20 Datensätze einlaufen, die wiederum 20-30 Zeilen haben. Hier möchte ich jetzt aber nur 3 bestimmte Zeilen auslesen.
Hier habe ich jetzt das Problem das ab und an ein Datensatz reinläuft der keinen wert1 und wert2 enthält, und durch das Datum dann die Zeilen verschiebt. Kann ich Daten ohne Wert1 und Wert2 überspringen lassen?
Leider weiß ich aber nicht wie ich das am besten umsetze.
Vielen Dank
ich habe da mal eine Frage zu Get-Content und komme nicht weiter. Eventuell hat hier jemand eine Idee oder Ansatz wie ich es lösen kann.
Ich habe einen Ordner in den täglich 10-20 Datensätze einlaufen, die wiederum 20-30 Zeilen haben. Hier möchte ich jetzt aber nur 3 bestimmte Zeilen auslesen.
$Datum = @(Get-Content -path C:\Info\*.txt | Where-Object {$_.Contains("Date")})
$wert1 = @(Get-Content -path C:\Info\*.txt | Where-Object {$_.Contains("Art")})
$wert2 = @(Get-Content -path C:\Info\*.txt | Where-Object {$_.Contains("Klasse")})
Hier habe ich jetzt das Problem das ab und an ein Datensatz reinläuft der keinen wert1 und wert2 enthält, und durch das Datum dann die Zeilen verschiebt. Kann ich Daten ohne Wert1 und Wert2 überspringen lassen?
Leider weiß ich aber nicht wie ich das am besten umsetze.
Vielen Dank
Please also mark the comments that contributed to the solution of the article
Content-Key: 6905712267
Url: https://administrator.de/contentid/6905712267
Printed on: April 28, 2024 at 14:04 o'clock
6 Comments
Latest comment
Hi,
also es sind mehrere TXT-Dateien, und wenn eine keinen Wert1 und keinen Wert2 beinhaltet, soll die Datei übersprungen werden?
-Thomas
also es sind mehrere TXT-Dateien, und wenn eine keinen Wert1 und keinen Wert2 beinhaltet, soll die Datei übersprungen werden?
-Thomas
Versuch das mal:
Wenn du noch Beispieldateien posten könntest, könnte dir besser geholfen werden
-Thomas
$results = @()
Get-ChildItem -Path C:\Info\*.txt -File | Foreach-Object {
$content = Get-Content $_.FullName
if ($content -match "Art" -and $content -match "Klasse") {
$results += @{
Date = $content | Select-String "Date"
Wert1 = $content | Select-String "Art"
Wert2 = $content | Select-String "Klasse"
}
}
}
$results
Wenn du noch Beispieldateien posten könntest, könnte dir besser geholfen werden
-Thomas
Zitat von @BlueEyePhoenix:
Start:--'
Time:10-10'
Code: UFT8'
Hst:5'
Date:20230417'
Date2:20230418'
Wert0:123123'
Wert1:20232504-1'
Wert2+Teil2
Type:223'
Type2+225'
Tcode+1'
QTY+1'
So sind die Listen aufgebaut mal sind es ein paar Felder mehr mal fehlen welche.
Start:--'
Time:10-10'
Code: UFT8'
Hst:5'
Date:20230417'
Date2:20230418'
Wert0:123123'
Wert1:20232504-1'
Wert2+Teil2
Type:223'
Type2+225'
Tcode+1'
QTY+1'
So sind die Listen aufgebaut mal sind es ein paar Felder mehr mal fehlen welche.
$results = Get-ChildItem C:\info\*.txt -File | ?{(Get-Content $_.Fullname -Raw) -match "(?ism)^Date:([^\r\n]+).*?^Wert1[:\+]([^\r\n]+).*?^Wert2[:\+]([^\r\n]+)"} | %{
[pscustomobject]@{
Date = $matches[1]
Wert1 = $matches[2]
Wert2 = $matches[3]
}
}
$results