buliwyf
Goto Top

In txt file an bestimmter Position zeichen ersetzen, Ideen ?

EIn freundl. Hallo @all face-wink

mein Anliegen was mich jetzt 2 Tage beschaeftigt ist : wie kann ich in einem Windows System, mit einem
automatismuss in einer text datei immer an der selben Position, zeichen aendern ?

Zuerst habe ich nach batch gesucht....ist aber viel zu komplziert....
Dann lass ich ein powershell script was schon besser aussieht...Leider wird in dem Powershelscript
nach einem bestimmten Wert gesucht und dieser dann ersetzt.
Bei mir aber ist der zu ersetzende Wert/ Zeichenfolge jeden Tag anders, nur die Position und Länge ist immer die Gleiche.


Die Position ist ab Zeichen 55 bis 60. (gezaehlt wird ob Buchstabe, sonderzeichen oder ..., alles.)

In diesem Bereich von den 6 Stellen will ich dann ein datum setzen, im Format YYMMTT

Jemand Ideen ?

Muesste so aussehen ?
delete in test.txt position 55 - 60
fuege ein in test.txt ab position 55 %date:~8,2%%date:~3,2%%date:~0,2%

ich hoffe ich habe mich nicht all zu umstaendlich ausgedrueckt.

MFG

Content-ID: 340734

Url: https://administrator.de/forum/in-txt-file-an-bestimmter-position-zeichen-ersetzen-ideen-340734.html

Ausgedruckt am: 22.12.2024 um 18:12 Uhr

133417
Lösung 133417 15.06.2017 aktualisiert um 11:09:28 Uhr
Goto Top
(gc 'c:\datei.txt' | out-string) -replace '(?<=^.{54}).{6}',(get-date -F yyMMdd) | sc 'c:\datei.txt'  
Gruß
buliwyf
buliwyf 15.06.2017 aktualisiert um 11:09:25 Uhr
Goto Top
Macht leider gar nix ? keinerlei auswirkung ?

hier mal ein Auszug des textes...
UNA:+.? 'UNB+UNOC:3+4011826000002:14+4311560000000:14+76.14:1346+2188+2188:AA'UNH+1+INVOIC:D:96A:UN:EAN008'BGM+380+1709322+9'DTM+137:20170614:102'DTM+35:20170613:102'FTX+SUR+++Es können sich nachträgliche Entgeltsminderungen ergeben. Aus diesem:Grund verweisen wir auf unsere Zahlungs-und Konditionsvereinbarung.+DE'RFF+DQ:0001708374'DTM+171:20170614:102'RFF+ABO:2188'DTM+171:20170614:102'RFF+CT:10'NAD+SU+4011826000002::9'RFF  

Um diese Positionen geht es,...(fett hervorgehoben)
UNA:+.? 'UNB+UNOC:3+4011826000002:14+4311560000000:14+76.14
Und so soll es ausschauen :
UNA:+.? 'UNB+UNOC:3+4011826000002:14+4311560000000:14+170614
(Datum aus der Datei von gestern)
133417
133417 15.06.2017 aktualisiert um 11:09:54 Uhr
Goto Top
Zitat von @buliwyf:

Macht leider gar nix ? keinerlei auswirkung ?
War nur ein kleiner Tippfehler, btw. das ist Powershell falls du das nicht bemerkt hast face-wink.
buliwyf
buliwyf 15.06.2017 um 11:10:30 Uhr
Goto Top
hab ich auch in powershell ausgefuehrt....
133417
Lösung 133417 15.06.2017 um 11:11:06 Uhr
Goto Top
Funktioniert aber jetzt nach der Änderung einwandfrei...
buliwyf
buliwyf 15.06.2017 um 11:19:55 Uhr
Goto Top
hatte ich gar nicht gesehen das dein erster Vorschlag geaendert wurde face-wink
Funktioniert tadelos !
Echt super schnell Loesung, vielen vielen Dank !!!
habs jetzt noch mit nem zusaetzlichen Doppelpunkt hinter dem Datum, weil das sonst durch die 6 Stellen den im File ueberschrieben hat.

(gc 'BTVEDEKA.D96' | out-string) -replace '(?<=^.{54}).{6}',(get-date -F yyMMddface-smile | sc 'BTVEDEKA.D96'

Also, nochmals vielen Dank !!!

LG
133417
133417 15.06.2017 um 11:48:40 Uhr
Goto Top
Immer gerne face-smile.