Einen definierte Anzahl Zeichen aus den Zeilen einer Textdatei entfernen
Moin zusammen,
vielleicht hat ja jemand von Euch eine Idee für mein Problem...
Aus einem Prozeß, auf den ich leider keinen Einfluss habe, erhalte ich täglich eine Textdatei, Namens "Checkcodes.txt".
In jeder Zeile der Textdatei muss stets das 16. bis einschließlich 23.Zeichen entfernt (ausgeschnitten) werden, um die Datei weiter verwursten zu können.
Beispielzeile:
Aus dem Prozeß kommt: (Der Zeitcode ist dummerweise immer doppelt vorhanden.)
XTLJ_ 10/02/07 12:16:40 12:16:40 12 XCOO7A2H1W.FR2
So muss es später aussehen:
XTLJ_ 10/02/07 12:16:40 12 XCOO7A2H1W.FR2
Eine aufwendige und zitterige Handarbeit, die meine Haare ergrauen läßt.
Die Anzahl der Zeilen dieser täglich neu erstellten Textdatei variiert leider immer.
Kann man da trotzdem eine Batch-Routine finden, die diese Aufgabe bewältigt?
Herzliche Grüße und vielen Dank vorab für Eure Mühe
Jabali07
vielleicht hat ja jemand von Euch eine Idee für mein Problem...
Aus einem Prozeß, auf den ich leider keinen Einfluss habe, erhalte ich täglich eine Textdatei, Namens "Checkcodes.txt".
In jeder Zeile der Textdatei muss stets das 16. bis einschließlich 23.Zeichen entfernt (ausgeschnitten) werden, um die Datei weiter verwursten zu können.
Beispielzeile:
Aus dem Prozeß kommt: (Der Zeitcode ist dummerweise immer doppelt vorhanden.)
XTLJ_ 10/02/07 12:16:40 12:16:40 12 XCOO7A2H1W.FR2
So muss es später aussehen:
XTLJ_ 10/02/07 12:16:40 12 XCOO7A2H1W.FR2
Eine aufwendige und zitterige Handarbeit, die meine Haare ergrauen läßt.
Die Anzahl der Zeilen dieser täglich neu erstellten Textdatei variiert leider immer.
Kann man da trotzdem eine Batch-Routine finden, die diese Aufgabe bewältigt?
Herzliche Grüße und vielen Dank vorab für Eure Mühe
Jabali07
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 71779
Url: https://administrator.de/contentid/71779
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
4 Kommentare
Neuester Kommentar
Wenn du immer genau diese anzahl an Zeichen wilslt dann versuchs mal so:
Wenn das Format immer so bleibt und du dich an den Leerstellen orientieren kannst dann kannst dus so versuchen:
miniverusm
@echo off
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
FOR /F "delims=" %%l in ("%infile%") do echo %%l:~0,15%%l:~16>>"%outfile%"
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
FOR /F "delims=" %%l in ("%infile%") do echo %%l:~0,15%%l:~16>>"%outfile%"
Wenn das Format immer so bleibt und du dich an den Leerstellen orientieren kannst dann kannst dus so versuchen:
@echo off
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
FOR /F "tokens=1,2,3,5,6 delims= " %%a in ("%infile%") do echo %%a %%b %%c %%d %%e %%f>>"%outfile%"
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
FOR /F "tokens=1,2,3,5,6 delims= " %%a in ("%infile%") do echo %%a %%b %%c %%d %%e %%f>>"%outfile%"
miniverusm
@miniversum
Da für Laufvariable die zeichenweise Zerlegung nicht vorgenommen werden kann, musst Du die eingelesene Zeile zunächst einer weiteren Variable zuweisen, was (zur Vermeidung der "delayedexpansion") in einem Unterprogramm erfolgen sollte, also etwa:
Die Variante 2 benötigt auch noch kleinere Anpassungen:
Grüße
bastla
Da für Laufvariable die zeichenweise Zerlegung nicht vorgenommen werden kann, musst Du die eingelesene Zeile zunächst einer weiteren Variable zuweisen, was (zur Vermeidung der "delayedexpansion") in einem Unterprogramm erfolgen sollte, also etwa:
@echo off & setlocal
set "infile=C:\Checkcodes.txt"
set "outfile=C:\Checkcodes_cut.txt"
if exist "%outfile%" del "%outfile%"
FOR /F "usebackq delims=" %%L in ("%infile%") do call :ProcessLine "%%L"
goto :eof
:ProcessLine
set "Line=%~1"
(echo %Line:~0,15%%Line:~24%)>>"%outfile%"
Die Variante 2 benötigt auch noch kleinere Anpassungen:
@echo off & setlocal
set "infile=c:\eingangsdatei.txt"
set "outfile=c:\ausgangsdatei.txt"
if exist "%outfile%" del "%outfile%"
FOR /F "usebackq tokens=1,2,3,5,6" %%a in ("%infile%") do (echo %%a %%b %%c %%d %%e)>>"%outfile%"
Grüße
bastla