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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6905712267
Url: https://administrator.de/contentid/6905712267
Ausgedruckt am: 20.11.2024 um 02:11 Uhr
6 Kommentare
Neuester Kommentar
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