smileyman 10 Posted November 13, 2009 Report Share Posted November 13, 2009 Hallo liebe Batchkenner, ich versuche gerade mit einer Batchdatei zwei TXT-Dateien zusammenzufassen. Der Aufbau beider Textdateien ist wie folgt: pnr.txt 1234000012312 1235000012355 ukw.txt 1234;555 1235;111 Als Ziel hätte ich gerne: 1234;12312;555 1234;12355;111 -> Also das erste File bereinigen und aus der zweiten Datei den Wert hinzufügen. Die erste Datei zu bereinigen habe ich noch problemlos hinbekommen: setlocal ENABLEDELAYEDEXPANSION set "Alt=C:\tmp\pnr.txt" set "Neu=C:\tmp\pnr-bereinigt.txt" if exist "%Neu%" del "%Neu%" for /f "usebackq delims=" %%i in ("%Alt%") do ( set "Z=%%i" >>"%Neu%" echo !Z:~0,4!;!Z:~5,3!) Allerdings wollte ich ja die Infos der ukw.txt noch hinzufügen. - Hier muss ich wohl eine zweite for-Schleife und einen findstr mit reinverschachteln. Schließlich muss er ja nach dem 1. Wert in der ukw.txt suchen und den entsprechenden String zurückliefern. Leider habe will das bei mir aber irgendwie nicht klappen. - Kann mir da jemand mal einen Tipp geben? Für eine Idee wäre ich euch sehr dankbar. Daniel Quote Link to comment
Dukel 451 Posted November 13, 2009 Report Share Posted November 13, 2009 Ich könnte was passendes in Powershell basteln. Quote Link to comment
smileyman 10 Posted November 13, 2009 Author Report Share Posted November 13, 2009 Hey Dukel, auch ok. - Obwohl mir eine cmd lieber wäre, wäre PowerShell sicherlich noch besser. Kannst du das mal probieren? - Wäre dir da super dankbar. Daniel Quote Link to comment
Dukel 451 Posted November 13, 2009 Report Share Posted November 13, 2009 Wie soll das erste bereinigt werden? Alle 0 raus? Alles zwischen den ersten 4 und den letzten 5 weg? Ändern sich die Anzahl der Stellen? Quote Link to comment
smileyman 10 Posted November 14, 2009 Author Report Share Posted November 14, 2009 Hallo Dukel, nachdem ich heute Nacht noch etwas an der Datenvorlierferung gearbeitet habe, hat sich die Situation leicht verändert: Dem Script würde nun als Aufrufparameter die ersten Zeichen der PNR.txt (1234) übermittelt werden. - Es müsste dann nur noch die PNR.txt durchsuchen, und den gefundenen Wert (12312) in ein neues File schreiben. Bei einer Batch würde ich jetzt mit for, findstr und echo arbeiten. - Da das Script allerdings sehr häufig laufen würde, stellt sich mir die Frage, ob Powershell nicht performanter und zuverlässiger wäre. Ich versuche mich eben etwas in PS einzulesen und mal etwas zu probieren. - Evtl. kannst du mir allerdings mal einen Tipp in die richtige Richtung geben. Grüße und Danke smileyman Quote Link to comment
Dukel 451 Posted November 14, 2009 Report Share Posted November 14, 2009 Performanter nicht unbedingt, aber zuverlässiger und man kann mehr machen. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.