batch - String suchen und ausgeben



  • Hallo!

    Ich hoffe ich bin in diesem Unterforum richtig bei Fragen zur batch-Programmierung 😉 ...

    Zuerst wollte ich das ganze in C-Programmieren, habe es aber leider als blutiger Anfänger überhaupt nicht hinbekommen.

    Ich habe eine txt-Datei mit folgendem Aufbau:

    ;# -Z77 Ich bin Text
    Hier noch mehr...
    Jetzt noch mit (Klammern)
    usw usw usw...
    ;# -   AAAAAAAAAAA
    bbbbbbbbbbbb
    ccccccccccccc
    DDDDDDDDDDDDDDD
    EEEEEEE
    FF FFF FFFFFF
    usw usw usw...
    

    Jetzt möchte ich nach jeder Zeichenfolge ";# -" die ersten 3 Zeilen in einer neuen txt-Datei ausgeben. (Inklusive der Zeile mit dem ";# -")

    Hier mein aktueller Verusch:

    @echo off & setlocal
    set "Datei=C:\test.txt"
    
    set "Bak=%Datei%.bak"
    move "%Datei%" "%Bak%"
    for /f "usebackq delims=" %%i in ("%Bak%") do set "Zeile=%%i" & call :ProcessLine
    
    REM del "%Bak%"
    goto :eof
    
    :ProcessLine
    echo %Zeile%>>"%Datei%"
    echo %Zeile%|findstr /b ";# -">nul || goto :eof
            "
    echo %Zeile:1%>>"%Datei%"
    goto :eof
    

    Folgendes funktioniert leider nicht:
    Der Text in der gleichen Zeile wie das ";# -" wird nicht ausgegeben, sollte aber.

    Wie kann ich angeben, dass z.B. nur die ersten 3 Zeilen ab dem ";# -" ausgegeben werden und nicht mehr...?

    Hmm... ich freue mich auf jeden Fall schon jetzt für eure Hilfe!


Anmelden zum Antworten