Bearbeitung einer Textdatei mittels cmd-Script
Hallo,
kann mir ein Tüfftler bei der Erstellung eines Scriptes helfen?
Ich möchte mittels cmd-Script eine Datei bearbeiten, die strukturell immer gleich aufgebaut ist (fortlaufende Zeilen beginnend mit 7 Ziffern).
Ich möchte von jeder einzelnen Zeile die ersten 7 Ziffern "abschneiden" und den Rest der Zeile belassen und nach Durchlaufen der Datei eine neue Datei erstellen lassen (in der also jeweils die ersten 7 Ziffern jeder Zeile fehlen)
Zudem möchte ich, das nach jeder Zeile in der Originaldatei, die mit einer bestimmten Ziffernfolge (xyz8310, wobei xyz verschieden sind, die 8310 der Marker ist) beginnt, in der erzeugten Datei eine Leerzeile erstellt wird (der besseren Übersicht halber).
aus:
1234567xytsdhdwhd --> xytsdhdwhd
2370376djcnenevnvnvv --> djcnenevnvnvv
0148310cwcncndcew -->
cwcncndcew
u.s.w.
Vielen Dank für Eure Hilfe!
alexander
kann mir ein Tüfftler bei der Erstellung eines Scriptes helfen?
Ich möchte mittels cmd-Script eine Datei bearbeiten, die strukturell immer gleich aufgebaut ist (fortlaufende Zeilen beginnend mit 7 Ziffern).
Ich möchte von jeder einzelnen Zeile die ersten 7 Ziffern "abschneiden" und den Rest der Zeile belassen und nach Durchlaufen der Datei eine neue Datei erstellen lassen (in der also jeweils die ersten 7 Ziffern jeder Zeile fehlen)
Zudem möchte ich, das nach jeder Zeile in der Originaldatei, die mit einer bestimmten Ziffernfolge (xyz8310, wobei xyz verschieden sind, die 8310 der Marker ist) beginnt, in der erzeugten Datei eine Leerzeile erstellt wird (der besseren Übersicht halber).
aus:
1234567xytsdhdwhd --> xytsdhdwhd
2370376djcnenevnvnvv --> djcnenevnvnvv
0148310cwcncndcew -->
cwcncndcew
u.s.w.
Vielen Dank für Eure Hilfe!
alexander
8 Antworten
- LÖSUNG SaschaRD schreibt am 22.03.2016 um 10:50:23 Uhr
- LÖSUNG alexander01 schreibt am 22.03.2016 um 23:29:18 Uhr
- LÖSUNG rubberman schreibt am 22.03.2016 um 18:49:51 Uhr
- LÖSUNG alexander01 schreibt am 22.03.2016 um 23:39:40 Uhr
- LÖSUNG rubberman schreibt am 22.03.2016 um 23:50:14 Uhr
- LÖSUNG alexander01 schreibt am 23.03.2016 um 00:05:59 Uhr
- LÖSUNG rubberman schreibt am 23.03.2016 um 13:38:04 Uhr
- LÖSUNG alexander01 schreibt am 23.03.2016 um 23:00:42 Uhr
- LÖSUNG rubberman schreibt am 23.03.2016 um 13:38:04 Uhr
- LÖSUNG alexander01 schreibt am 23.03.2016 um 00:05:59 Uhr
- LÖSUNG rubberman schreibt am 22.03.2016 um 23:50:14 Uhr
- LÖSUNG alexander01 schreibt am 22.03.2016 um 23:39:40 Uhr
LÖSUNG 22.03.2016 um 10:50 Uhr
LÖSUNG 22.03.2016 um 18:49 Uhr
Hallo alexander,
als Batchscript bspw. so
Grüße
rubberman
als Batchscript bspw. so
@echo off &setlocal
set "infile=test.txt"
set "outfile=test2.txt"
set "separate=8310"
setlocal EnableDelayedExpansion
<"!infile!" >"!outfile!" (
for /f %%i in ('type "!infile!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line=" &set /p "line="
if not defined line (
echo(
) else (
if "!line:~3,4!"=="!separate!" echo(
echo !line:~7!
)
)
)
rubberman
LÖSUNG 22.03.2016 um 23:29 Uhr
LÖSUNG 22.03.2016 um 23:39 Uhr
LÖSUNG 22.03.2016 um 23:50 Uhr
LÖSUNG 23.03.2016 um 00:05 Uhr
Ja gern.
In jedem Fall sollen die ersten 7 Ziffern entfernt werden.
Die Routine soll aber prüfen, ob in einer Zeile eine bestimmte Ziffernkombination vorliegt ( hier 012), um in diesem Fall die 7 Ziffern durch ein bestimmtes Wort ersetzen.
Beispiel:
8451654hfhfhfugjg. --> hfhfhfugjg
5367436gtzertd --> gtzertd
0125677teoigwe --> Wort teoigwe
Grüße
Alexander
In jedem Fall sollen die ersten 7 Ziffern entfernt werden.
Die Routine soll aber prüfen, ob in einer Zeile eine bestimmte Ziffernkombination vorliegt ( hier 012), um in diesem Fall die 7 Ziffern durch ein bestimmtes Wort ersetzen.
Beispiel:
8451654hfhfhfugjg. --> hfhfhfugjg
5367436gtzertd --> gtzertd
0125677teoigwe --> Wort teoigwe
Grüße
Alexander
LÖSUNG 23.03.2016, aktualisiert um 17:28 Uhr
Hallo Alexander,
OK verstanden.
Das Prinzip könnte etwa so aussehen
Wenn es am Ende nicht um mehrere Ersetzungen geht, schmeißt du das else if und die darauffolgende Zeile raus...
Grüße
rubberman
OK verstanden.
Das Prinzip könnte etwa so aussehen
@echo off &setlocal
set "infile=test.txt"
set "outfile=test2.txt"
set "separate=8310"
set "target1=012"
set "prefix1=Beispielwort1"
set "target2=345"
set "prefix2=Beispielwort2"
setlocal EnableDelayedExpansion
<"!infile!" >"!outfile!" (
for /f %%i in ('type "!infile!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line=" &set /p "line="
if not defined line (
echo(
) else (
if "!line:~3,4!"=="!separate!" echo(
if "!line:~0,3!"=="!target1!" (
echo !prefix1! !line:~7!
) else if "!line:~0,3!"=="!target2!" (
echo !prefix2! !line:~7!
) else (
echo !line:~7!
)
)
)
)
Grüße
rubberman
LÖSUNG 23.03.2016 um 23:00 Uhr