Hallo liebe Community,
ich habe täglich die Aufgabe eine 10-20 tausend Zeilen große Textdatei zu bearbeiten.
Hierbei geht es darum einen Datumswert in einem String durch den aktuellen Datumswert zu ersetzen.
So sieht der Originalstring aus:
DTM+2:20150326:102'
Da das Datum welches in diesem String hinterlegt ist, selbst innerhalb der Datei ständig anders sein kann muss ich hier auf
regular exxpressions zurückgreifen.
Mit: \bDTM\+2:[0-9].......:102' bzw. \bDTM\+2:\d{8}:102'
gelingt es mir bereits alle Zeilen die DTM+2 am Zeilenanfang beinhalten zu erreichen und somit dann auch auszutauschen.
Der aktuelle Stand meines Skripts ist folgender:
@ECHO off
SETLOCAL enabledelayedexpansion
REM testprogramm zum Aendern von DTM 2 Inhalt
SET quelle=c:\dtm.txt
SET ziel=c:\hallowelt.txt
IF EXIST %ziel% DEL /f %ziel%
FOR /f "delims=" %%i IN ('FINDSTR /R . %quelle%') DO (
SET ganze_zeile=%%i
SET ganze_zeile=!ganze_zeile:\bDTM\+2:[0-9].......:102'=HalloWelt!
ECHO !ganze_zeile!
ECHO !ganze_zeile! >> %ziel%
)
pause
das ganze funktioniert auch sobald ich nicht "/R" als Parameter von FINDSTR angebe und einfach 1 zu 1 beispielsweise DTM durch HALLOWELT ersetze.
Sobald aber der reguläre Ausdruck greifen soll läuft die batch zwar, aber tut überhaupt nichts.
Ich bin mittlerweile ziemlich stark an der Grenze der Verzweiflung angekommen :-(
Vielleicht hat hier jemand eine Idee und könnte mir bei der weiteren Umsetzung helfen. Ich wäre euch sehr dankbar.
ich habe täglich die Aufgabe eine 10-20 tausend Zeilen große Textdatei zu bearbeiten.
Hierbei geht es darum einen Datumswert in einem String durch den aktuellen Datumswert zu ersetzen.
So sieht der Originalstring aus:
DTM+2:20150326:102'
Da das Datum welches in diesem String hinterlegt ist, selbst innerhalb der Datei ständig anders sein kann muss ich hier auf
regular exxpressions zurückgreifen.
Mit: \bDTM\+2:[0-9].......:102' bzw. \bDTM\+2:\d{8}:102'
gelingt es mir bereits alle Zeilen die DTM+2 am Zeilenanfang beinhalten zu erreichen und somit dann auch auszutauschen.
Der aktuelle Stand meines Skripts ist folgender:
@ECHO off
SETLOCAL enabledelayedexpansion
REM testprogramm zum Aendern von DTM 2 Inhalt
SET quelle=c:\dtm.txt
SET ziel=c:\hallowelt.txt
IF EXIST %ziel% DEL /f %ziel%
FOR /f "delims=" %%i IN ('FINDSTR /R . %quelle%') DO (
SET ganze_zeile=%%i
SET ganze_zeile=!ganze_zeile:\bDTM\+2:[0-9].......:102'=HalloWelt!
ECHO !ganze_zeile!
ECHO !ganze_zeile! >> %ziel%
)
pause
das ganze funktioniert auch sobald ich nicht "/R" als Parameter von FINDSTR angebe und einfach 1 zu 1 beispielsweise DTM durch HALLOWELT ersetze.
Sobald aber der reguläre Ausdruck greifen soll läuft die batch zwar, aber tut überhaupt nichts.
Ich bin mittlerweile ziemlich stark an der Grenze der Verzweiflung angekommen :-(
Vielleicht hat hier jemand eine Idee und könnte mir bei der weiteren Umsetzung helfen. Ich wäre euch sehr dankbar.
Zuletzt bearbeitet: