online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon Strauss vom 02.01.2019, 22:03 Options

Mit Batch-Datei bestimmet Textstelle ändern

Ein freundliches Hallo an alle

Ich wollte mal nachfragen, ob es mit einer Batchdatei möglich ist nur eine bestimmte Stelle in einem Txtfile zu ändern.

Beispiel:
Es soll die Zeile
Zitat:
hans mustermann


abgeändert werden in
Zitat:
clara mustermann


Die Datei heisst test.txt und liegt im Wurzelverzeichnis von C

Besten Dank im vorraus für Eure Bemühungen

Mfg Micha


Antwort schreiben

Antwort 1 von Harvey17 vom 12.11.2019, 19:19 Options

würde mich auch interesieren nur eben eine zeile in ner batch ändern :-)

Antwort 2 von batti-batch vom 19.11.2019, 14:38 Options

Hallo Strauss und Harvey17,


Suchen und Ersetzen in Textdateien ist eine Aufgabe, die sich mit Hilfe der Batch-Programmierung oft einfach erledigen läßt.

Ein solches Problem stand hier neulich schon zur Lösung an (siehe http://www.supportnet.de/threads/1623749 "Anführungszeichen aus .txt Datei löschen"). Meinen Lösungsvorschlag von damals habe ich noch ein bisschen erweitert.

Dieses Programm eignet sich auch dazu, einzelne Zeichen(folgen) zu suchen und durch andere zu ersetzen oder bestimmte Zeichen(folgen) zu entfernen. Probiert es einfach mal aus. Das Programm kann durch Änderungen im
SET-Block
ganz leicht den Wünschen und Gegebenheiten angepasst werden:

SET "quell_datei=vollstaendiger Dateiname incl. Laufwerk und Pfad"
SET "ziel_datei=vollstaendiger Dateiname incl. Laufwerk und Pfad"
SET "suchen_nach=hans mustermann"
SET "ersetzen_durch=clara mustermann"


Wenn zum Beispiel "hans mustermann" aus der Zeile entfernt werden soll, muß die letzte Zeile des
SET-Blocks


SET "ersetzen_durch=clara mustermann"


in

SET "ersetzen_durch="


geändert werden.

Hier nun das vollständige Programm:

@ECHO off
SETLOCAL enabledelayedexpansion

REM
REM Testprogramm
REM Suchen und Ersetzen in einer Textdatei
REM
REM http://www.supportnet.de/threads/1481757 
REM batti-batch 11/2007
REM
REM lauffaehig ab Windows 2000
REM 


SET "quell_datei=vollstaendiger Dateiname incl. Laufwerk und Pfad"
SET "ziel_datei=vollstaendiger Dateiname incl. Laufwerk und Pfad"
SET "suchen_nach=hans mustermann"
SET "ersetzen_durch=clara mustermann"

REM Ausgabe einer Fehlermeldung und Programmabbruch
REM falls die Variable "suchen_nach" nicht definiert ist
IF NOT DEFINED suchen_nach (ECHO Fehler: Die Variable suchen_nach nicht definiert^^!&GOTO :eof)

REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL)

REM Quell-Datei zeilenweise auslesen 
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :weiter
:ersetzen
REM innerhalb der Variable "zeile"
REM den Inhalt der Variable "suchen_nach" suchen
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
SET zeile=!zeile:%suchen_nach%=%ersetzen_durch%!

REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU [] (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof

:weiter
REM weitere Verarbeitung

ECHO Fertig^^!


Viel Spass beim Testen!

Herzliche Grüße
batti-batch

Ähnliche Themen

Batch-Datei erstellen
Danne  16.03.2007 - 382 Hits - 2 Antworten

Batch datei Fenster ausblenden?
Harvey17  31.07.2007 - 1628 Hits - 5 Antworten

Tastendruck mit Batch-Datei simulieren ??
schlucki0815  03.10.2007 - 262 Hits - 3 Antworten

über batch in autostert kopieren
Harvey17  13.12.2008 - 170 Hits - 7 Antworten

autorun geht nicht
alfboss  25.05.2008 - 127 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026