1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Batch-file um Text A durch Text B zu ersetzen

Discussion in 'Windows 7' started by Musicfreak666, Dec 27, 2012.

Thread Status:
Not open for further replies.
  1. Geehrte Forengemeinde,

    ich versuche mich gerade im Schreiben einer Batch-Datei komme aber nicht wirklich voran.

    Folgendes möchte ich machen:

    In einer .txt Datei bestimmte Zahlen-Zeichenkombinationen, die durch Lehrzeichen voneinander getrennte sind durch einen Text ersetzen. Bsp.:

    -4 5 -3 -8 wird zu Db F G A

    Wie ist sowas zu bewerkstelligen? Vielen Dank für eure Hilfe!
     
  2. Hallo

    Untenstehend ein Beispiel-Batch. Sollte damit funktionieren. Datei.txt ist die Quelldatei .
    Datei3.txt die Zieldatei. Integriert sind zwei Ersetzen-Faelle.
    Ansonsten halt die Datei-Namen bzw. Ordner-Pfade etc. entsprechend abändern.

    Gruß

    Code:
    
    
    @ECHO off
    SETLOCAL enabledelayedexpansion
    
    REM
    REM Suchen und Ersetzen in einer Textdatei
    REM 
    
    
    SET "quell_datei=E:\0001\Datei.txt"
    SET "ziel_datei=E:\0001\Datei3.txt"
    
    SET "suchen_nach1=-4 5 -3 -8"
    SET "ersetzen_durch1=Db F G A"
    
    SET "suchen_nach2=-4 5 -3 -7"
    SET "ersetzen_durch2=Db F G B"
    
    
    REM Ausgabe einer Fehlermeldung und Programmabbruch
    REM falls die Variable "suchen_nach*" nicht definiert ist
    IF NOT DEFINED suchen_nach1 (ECHO Fehler: Die Variable suchen_nach1 nicht definiert^^!&GOTO :eof)
    IF NOT DEFINED suchen_nach2 (ECHO Fehler: Die Variable suchen_nach2 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_nach1" suchen
    REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
    SET zeile=!zeile:%suchen_nach1%=%ersetzen_durch1%!
    SET zeile=!zeile:%suchen_nach2%=%ersetzen_durch2%!
    
    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^^
    
    
    
     
Thread Status:
Not open for further replies.

Share This Page