Zeichen in einer txt datei finden und ändern
Hallo,
ich möchte gern ein Batch file, was folgendes realisert.
Eine Datei xxx.txt soll eingelesen werden.
Anschliesend soll in dieser xxx.txt datei nach einer Zeichenfolge "50000" gesucht werden und immer wenn diese Zeichenfolge
gefunden wird, soll dieser mit einem Zähler innerhalb der Batch Datei hochgezählt werden.
Beispiel:
xxx.txt
hdsjlfhjdfjds50000dlkfhkdlsjflkd50000
jkfhgkjfdhg50000zdf
Batch Datei läuft und Zähler ist bei 50001
Ergebnis:
hdsjlfhjdfjds50001dlkfhkdlsjflkd50001
jkfhgkjfdhg50001zdf
Gibt es die Möglichkeit, sowas zu realisieren ohne über temporäre Dateien oder neue Dateien zu gehen?
Es muss die vorhandene Datei überschrieben und entsprechend angepasst werden.
Vielen Dank und viele Grüße
Andreas
ich möchte gern ein Batch file, was folgendes realisert.
Eine Datei xxx.txt soll eingelesen werden.
Anschliesend soll in dieser xxx.txt datei nach einer Zeichenfolge "50000" gesucht werden und immer wenn diese Zeichenfolge
gefunden wird, soll dieser mit einem Zähler innerhalb der Batch Datei hochgezählt werden.
Beispiel:
xxx.txt
hdsjlfhjdfjds50000dlkfhkdlsjflkd50000
jkfhgkjfdhg50000zdf
Batch Datei läuft und Zähler ist bei 50001
Ergebnis:
hdsjlfhjdfjds50001dlkfhkdlsjflkd50001
jkfhgkjfdhg50001zdf
Gibt es die Möglichkeit, sowas zu realisieren ohne über temporäre Dateien oder neue Dateien zu gehen?
Es muss die vorhandene Datei überschrieben und entsprechend angepasst werden.
Vielen Dank und viele Grüße
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 94945
Url: https://administrator.de/forum/zeichen-in-einer-txt-datei-finden-und-aendern-94945.html
Ausgedruckt am: 28.04.2025 um 01:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo fitzodil und willkommen im Forum!
Abgesehen davon finde ich Dein Beispiel widersprüchlich: Nach Deiner Beschreibung (die sich ja nur auf eine einzelne Datei bezieht) hätte ich eigentlich als Ergebnis
Grüße
bastla
Gibt es die Möglichkeit, sowas zu realisieren ohne über temporäre Dateien oder neue Dateien zu gehen?
Weshalb willst Du eigentlich Temporärdateien vermeiden? Mit native Batch ist das IMHO nicht möglich - dazu bräuchte es einen Hexeditor mit Kommandozeilensteuerung oder zumindest ein VBScript.Abgesehen davon finde ich Dein Beispiel widersprüchlich: Nach Deiner Beschreibung (die sich ja nur auf eine einzelne Datei bezieht) hätte ich eigentlich als Ergebnis
hdsjlfhjdfjds50001dlkfhkdlsjflkd50002
jkfhgkjfdhg50003zdf
erwartet. Dass jeweils der selbe Wert (50001) eingetragen wird, wäre aus meiner Sicht nur sinnvoll, wenn durch diesen Batch mehrere Textdateien zu bearbeiten wären.jkfhgkjfdhg50003zdf
Grüße
bastla
Hallo fitzodil!
Die Technik wird Dir vielleicht bekannt vorkommen
:
Grüße
bastla
Die Technik wird Dir vielleicht bekannt vorkommen
@echo off & setlocal
set "Datei=D:\Deine Textdatei.txt"
set "Von=50000"
set "Nach=50001"
set R=%temp%ReplaceInFile.vbs
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2))
cscript //nologo %R% "%Datei%" "%Von%" "%Nach%"
bastla