Einen bestimmten Teil einer Textdatei auslesen
Hallo,
ich brauche mal einen Denkanstoß.
Ich bekomme per FTP von einem Kunden täglich mehrere Textdateien. Diese haben unterschiudlich viele Zeilen.
Jede Zeile fängt aber mit einem 3stelligen Code an. Dadurch kann ich identifizieren in welcher Zeile ich schauen muss.
Ich muss jetzt immer in den Zeilen die mit dem Code "613" anfangen schauen welcher Wert zwichen den Zeichen 70 - 71 drin steht.
Dieser kann allerdings auch leer sein. Dann brauche ich halt den "leeren" wert.
Wie kann ich diesen nun am besten in Array schreiben.
Dadurch habe ich die Zeilennummer welche mit 613 anfangen.
Aber irgendwie stehe ich nun auf dem Schlauch wie ich denn nun den angesprochenen Wert auslesen.
Je nach Wert muss ich bestimmte Aktionen durchführen. Ich benötigen den Wert also in einem Array.
Hat jemand einen Denkanstoß für mich?
Danke Gruß
Focus1610
ich brauche mal einen Denkanstoß.
Ich bekomme per FTP von einem Kunden täglich mehrere Textdateien. Diese haben unterschiudlich viele Zeilen.
Jede Zeile fängt aber mit einem 3stelligen Code an. Dadurch kann ich identifizieren in welcher Zeile ich schauen muss.
Ich muss jetzt immer in den Zeilen die mit dem Code "613" anfangen schauen welcher Wert zwichen den Zeichen 70 - 71 drin steht.
Dieser kann allerdings auch leer sein. Dann brauche ich halt den "leeren" wert.
Wie kann ich diesen nun am besten in Array schreiben.
$ordnerpfad = "x:\"
cd X:
$datein = Get-ChildItem -Path $ordnerpfad -filter FORD*
foreach($i in $datein)
{
$meldungpath=$ordnerpfad + $i.Name
$ladung = Get-Content -Path $meldungpath
$pattern= "613"
$meldungzeile = Select-String -path $meldungpath -pattern $Pattern | ft LineNumber
Dadurch habe ich die Zeilennummer welche mit 613 anfangen.
Aber irgendwie stehe ich nun auf dem Schlauch wie ich denn nun den angesprochenen Wert auslesen.
Je nach Wert muss ich bestimmte Aktionen durchführen. Ich benötigen den Wert also in einem Array.
Hat jemand einen Denkanstoß für mich?
Danke Gruß
Focus1610
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279273
Url: https://administrator.de/contentid/279273
Ausgedruckt am: 17.11.2024 um 11:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
as simple as this...
Gruß grexit
as simple as this...
# leeres Array erzeugen
$array = @()
gci 'X:\FORD*' | %{
$result = (gc $_.Fullname) | ?{$_ -match '^613'} | %{$_[69..70] -join ''}
# Je nach Wert entscheiden was zu tun ist
switch($result){
'AA' {write-host "Tu was bei 'AA'"}
'BB' {write-host "Tu was bei 'BB'"}
default {write-host "Tu was bei sonstigen Werten"}
}
# Wert dem Array hinzufügen
$array += $result
}
Nicht unbedingt, wenn du die Werte hinterher nicht brauchst lass den Teil einfach weg.
Ist ja auch kein Wunder ... Du setzt die Variable $result innerhalb der Foreach-Schleife immer wieder neu deswegen hast du am Ende auch nur das letzte Element darin