per batch text aus datei ab einem best. zeichen in andere datei kopieren
hallo,
ich möchte aus mehreren txt-Dateien ab einem bestimmten Text (nämlich <!!!><???>) den nachfolgenden Text in eine neue
Datei kopieren.
also so:
suche in Datei 1 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
suche in Datei 2 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
suche in Datei 3 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
kann mir da jemand helfen? von batch-befehlen hab ich nicht so viel Ahnung. (ich kenne nur mkdir, copy, ren und so Standardsachen..)
viele Grüße
marc
ich möchte aus mehreren txt-Dateien ab einem bestimmten Text (nämlich <!!!><???>) den nachfolgenden Text in eine neue
Datei kopieren.
also so:
suche in Datei 1 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
suche in Datei 2 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
suche in Datei 3 nach dem Begriff <!!!><???> und schreibe alle Zeichen danach in die Datei gesamt-neu.txt.
kann mir da jemand helfen? von batch-befehlen hab ich nicht so viel Ahnung. (ich kenne nur mkdir, copy, ren und so Standardsachen..)
viele Grüße
marc
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93839
Url: https://administrator.de/forum/per-batch-text-aus-datei-ab-einem-best-zeichen-in-andere-datei-kopieren-93839.html
Ausgedruckt am: 17.04.2025 um 00:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo icram!
Zur Not ginge es auch mit Batch alleine, aber besser geeignet für Textoperationen ist VBScript - daher eine Kombination:
Dieser Batch erzeugt ein VBScript und "füttert" es der Reihe nach mit den Dateien, welche als %Quelle% festgelegt wurden. Das Script liefert jeweils den von Dir gewünschten Ausschnitt aus der Datei als Ergebnis zurück, welches dann an die Datei %Neu% angefügt wird.
Grüße
bastla
Zur Not ginge es auch mit Batch alleine, aber besser geeignet für Textoperationen ist VBScript - daher eine Kombination:
@echo off & setlocal
set "Neu=D:\gesamt-neu.txt"
set "Quelle=D:\Datei*.txt"
if exist "%Neu%" del "%Neu%"
set E=%temp%\Extract.vbs
> %E% echo S="<!!!><???>":T=CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll:P=InStr(T,S):If P^>0 Then WScript.Echo Mid(T,P+Len(S))
for %%i in ("%Quelle%") do cscript //nologo %E% "%%i">>"%Neu%"
Grüße
bastla
Hallo icram!
Dann kleiner Strategiewechsel - das VBScript übernimmt auch gleich das Schreiben:
Grüße
bastla
P.S.: Freut mich immer, wenn's hilft ...
[Edit] Dem "OpenTextFile" noch ",1" hinzugefügt. [/Edit]
Dann kleiner Strategiewechsel - das VBScript übernimmt auch gleich das Schreiben:
@echo off & setlocal
set "Neu=D:\gesamt-neu.txt"
set "Quelle=D:\Datei*.txt"
if exist "%Neu%" del "%Neu%"
set E=%temp%\Extract.vbs
> %E% echo S="<!!!><???>":Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(WScript.Arguments(0)).ReadAll
>>%E% echo P=InStr(T,S):If P^>0 Then fso.OpenTextFile(WScript.Arguments(1),8,1).Write Mid(T,P+Len(S))
for %%i in ("%Quelle%") do cscript //nologo %E% "%%i" "%Neu%"
bastla
P.S.: Freut mich immer, wenn's hilft ...
[Edit] Dem "OpenTextFile" noch ",1" hinzugefügt. [/Edit]