heinze
Goto Top

Die Möglichkeit mittels For -F Schleife ein Txt-File neu zusammenstellen prüfen

OS = WIN10 Prof, / CMD


Hallo @ all

Ich darf hoffentlich wieder auf meine mittlerweile bekannten Liste zurück kommen:

Auszug aus dieser Liste (Zeile 1 und 2 von ca. hundert)

Love You for Life 10:39 PM   	(::Titel)
Three Plus				(:: Gruppe)
.
.
.

Das Ziel ist nun diese beiden Zeilen in ein neues Textfile (oder erst in eine Variable zu schreiben (hundert mal Textfile öffnen, schreiben, schließen das dauert etwas länger, ich kann mich noch düster an vor 20 Jahren erinnern dass da was war)), aber die beiden letzten Token in Zeile 1 sollen nicht mit übertragen werden (Uhrzeit und PM bzw. AM)
Alle beiden Zeilen können verschieden lang sein, aber jedes Pärchen hat die selbe "Logik".
Das Ergebnis sollte dann sein:

Three Plus - Love You for Life.

Meine Frage dazu: meint Ihr das lässt sich überhaupts so machen wie ich denke?

Hat jemand eine Lösungsansatz oder meint ihr ich kann das ganze Projekt in die Tonne treten und dafür lieber in der Hängematte abhängen?

Mein Lösungansatz war eigentlich (grob skizziert)
Eine FOR-Schleife über das txt-File, Zeile 1 auflösen in mehrere Tokens, diese Token %%* dann in die Variable%Zaehler schreiben bis eine zwischengeschaltete „findstr-suche“ nach den 3 Auschlusskriterien in eine abbricht, den Zähler hochrechen.

Bei dem nächsten Lauf der For-Schleife das selbe Spiel wieder von vorne, aber eben dann die Variable%Zaehler prüfen und die Ausgabe in die Variable%Zaehler% schieben. Die beiden Variablen dann in das neue Textfile schieben und Zaehler wieder auf 1 setzten.

Mittlerweile hab ich schon vor lauter Verzweiflung ausm Keller meine vor 20 Jahren erstellten “Structogramme“ geholt und einen fast kompletten Block verschrieben.
Aber viele der DOS-Befehle aus dieser Zeit sind nicht mehr funktionsfähig wie if exist, defined oder ich mach was falsch.

Mit besten Grüßen
Heinze

Content-ID: 570128

Url: https://administrator.de/contentid/570128

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

143728
143728 07.05.2020 aktualisiert um 17:29:46 Uhr
Goto Top
Nimm doch gleich die PS zur Hand ... lässt sich auch in ne Batch einbauen wenn man unbedingt muss...
@echo off
set "INPUT=D:\datei.txt"  
set "OUTPUT=D:\datei_neu.txt"  
powershell -EP ByPass -C "$c = gc '%INPUT%';for ($i = 0; $i -lt $c.Count; $i +=2){$($c[$i+1].trim()) + ' - ' + $(($c[$i] -replace '[\d:\s]+ (AM|PM)\s*$').trim())}" >"%OUTPUT%"  
Heinze
Heinze 09.05.2020 um 10:40:27 Uhr
Goto Top
Hallo cabrinha

danke für deine Mühe,

ich habs probiert und es klappt, aber leider kann ichs nicht verwenden da mein Wissenstand nicht zur PS reicht und ich also im Code nichts ändern, anpassen und Co. kann.

LG Heinz
144260
144260 10.05.2020 aktualisiert um 12:28:09 Uhr
Goto Top
So ziemlich das gleiche wie in der Folgefrage, drehst du halt nur die Reihenfolge um ...
2 Zeilen auf txt-file zusammenzügen mittels FOR -f und IF