Batch - Mehrere Text Dateien Lesen und bestimmtes Wort, bestimmte Worte durch neue ersetzen
Guten Tag erstmal.
Ich habe ein kleines Problem.
Ich möchte eine Batch Datei erstellen, diese in mehreren Texten ein Wort oder Text suchen soll und dessen durch ein neues zu ersetzen hat.
Darauf soll die Datei abgespeichert werden.
echo off
for /F "delims=" %%A in ('Findstr /i /M /C:"xxx" *.txt') do SET %%A=fff
Momentan sieht es bei mir so aus.
Aus irgendeinen Grund, versteht er nicht was ich machen möchte.
Also am Ende, soll statt dem xxx ein FFF stehen.
mfg DimitriW
Ich habe ein kleines Problem.
Ich möchte eine Batch Datei erstellen, diese in mehreren Texten ein Wort oder Text suchen soll und dessen durch ein neues zu ersetzen hat.
Darauf soll die Datei abgespeichert werden.
echo off
for /F "delims=" %%A in ('Findstr /i /M /C:"xxx" *.txt') do SET %%A=fff
Momentan sieht es bei mir so aus.
Aus irgendeinen Grund, versteht er nicht was ich machen möchte.
Also am Ende, soll statt dem xxx ein FFF stehen.
mfg DimitriW
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142164
Url: https://administrator.de/forum/batch-mehrere-text-dateien-lesen-und-bestimmtes-wort-bestimmte-worte-durch-neue-ersetzen-142164.html
Ausgedruckt am: 22.04.2025 um 15:04 Uhr
2 Kommentare
Neuester Kommentar

Zitat von @DimitriW:
Momentan sieht es bei mir so aus.
Aus irgendeinen Grund, versteht er nicht was ich machen möchte.
Du weisst schon, das Computer absolut stumpfsinnig (und sehr schnell) genau das machen was man Ihnen sagt.Momentan sieht es bei mir so aus.
Aus irgendeinen Grund, versteht er nicht was ich machen möchte.
Das Problem ist nicht, das der Computer dich nicht versteht, eherr umgekehrt, du verstehst nicht, was du IHM sagen musst damit er genau das tut, was du möchtest.
Ergänze das oben um eine Zeile mit dem Befehl:
set
, damit du siehst, was du veranlasst hast.Davon abgesehen, ist Batch nicht sehr gut geeignet beliebeigen Text zu ersetzen. Es müsen alle Dateien gelesen und wenn es etwas auszutauschen ggfs komplett neu geschrieben werden wobei dann der Begriiff in der Zeile ausgetauscht wird.
Gruß
LotPings
Moin DimitriW,
um das Ganze mal etwas abzukürzen... du hast das falsche Werkzeug gewählt.
Das "FindStr.exe"-Utility ist nützlich, mächtig, unverzichtbar am CMD-Prompt....aber es ist ein reines Nur-Lese-Werkzeug.
Sucht nach Strings und meldet Fundstellen OHNE Änderungen am Original vorzunehmen.
Also ungeeignet für deinen Plan.
Ein unter günstigen Umständen gern praktizierter Workaround per Batch ist die Strategie:
Lese aus einer Textdatei A jede gatesverdammte Zeile aus und
Hört sich holprig an, ist es aber auch.
Deshalb hat das Lordchen dieses Thema auch nicht weiter schmackhaft gemacht.
Was du für dein Problem eigentlich brauchst ist ein Editor, den aber nicht du manuell bedienst, sondern der (wenn er die Regeln kennt) aus einem Input-Stream (Originaldatei) einen Output-Stream (geänderte Datei) ohne weiteres Benutzerzutun erzeugen kann.
Glücklicherweise wurde ein derartiger Stream-Editor bereits erfunden und naheliegenderweise haben die Entwickler ihn "SED" für "Stream-Editor" genannt.
Nach einem "Sed für Windows" solltest du mal kurz suchmaschinen, dann kommst du weiter.
Und gegebenfalls wieder.
Grüße
Biber
um das Ganze mal etwas abzukürzen... du hast das falsche Werkzeug gewählt.
Das "FindStr.exe"-Utility ist nützlich, mächtig, unverzichtbar am CMD-Prompt....aber es ist ein reines Nur-Lese-Werkzeug.
Sucht nach Strings und meldet Fundstellen OHNE Änderungen am Original vorzunehmen.
Also ungeeignet für deinen Plan.
Ein unter günstigen Umständen gern praktizierter Workaround per Batch ist die Strategie:
Lese aus einer Textdatei A jede gatesverdammte Zeile aus und
- Prüfe, ob ein bestimmter "Suchstring" in dieser Zeile ist
- wenn ja, schreibe diese eine Zeile nach dem Ersetzen von "Suchstring" durch "NeuerString" in Datei B
- wenn nein, schreibe diese eine Zeile unverändert in Datei B
Hört sich holprig an, ist es aber auch.
Deshalb hat das Lordchen dieses Thema auch nicht weiter schmackhaft gemacht.
Was du für dein Problem eigentlich brauchst ist ein Editor, den aber nicht du manuell bedienst, sondern der (wenn er die Regeln kennt) aus einem Input-Stream (Originaldatei) einen Output-Stream (geänderte Datei) ohne weiteres Benutzerzutun erzeugen kann.
Glücklicherweise wurde ein derartiger Stream-Editor bereits erfunden und naheliegenderweise haben die Entwickler ihn "SED" für "Stream-Editor" genannt.
Nach einem "Sed für Windows" solltest du mal kurz suchmaschinen, dann kommst du weiter.
Und gegebenfalls wieder.
Grüße
Biber