Ergebnis 1 bis 6 von 6

Thema: Batch Datei programmieren

  1. #1

    Batch Datei programmieren

    Ich will in einer Batch Datei einen gewissen String suchen und dann den Wert 5 Zeilen weiter mit dem Wert 15 Zeilen weiter vergleichen.

    Sieht derzeit an der Stelle so aus:



    Code:
        @echo off
    
    REM Suche nach dem wort testwort in der Datei test.txt
    
    REM Auslesen und Ziel-Datei
    SET "quell_datei=U:\Dateisortierung\test\test.txt"
    SET "ziel_datei=U:\Dateisortierung\test\testergebnis.txt"
    SET "suchen_nach=testwort"
    
    
    REM Quell-Datei zeilenweise auslesen 
        REM und in Variable "zeile" schreiben
        FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
        SET zeile=%%i& CALL :vergleich !zeile!
        )
        GOTO :weiter
    
        :vergleich
        REM innerhalb der Variable "zeile"
        REM den Inhalt der Variable "suchen_nach" suchen
        REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
        If zeile=!zeile:%suchen_nach% CALL :zeilenvergleich
    
        :zeilenvergleich
    
        If "%1"=="%2" echo %1 and %2 are identical
    Ich vermute, dass es soweit zumindest nicht falsch ist.

    Bei Zeilenvergleich:
    Hier weiss ich nicht, wie ich dann den Wert vergleichen kann? Stehe nun in einer Zeile und wie mache ich das nun, dass er die beiden gesuchten Werte (5 Zeilen und 15 Zeilen nach der von mir gefundenen Zeile) mir vergleicht?
    im Anschluss soll er dann die Zeilen 9-13 löschen, wenn der Wert identisch ist.

  2. #2
    Ayo,
    Besteht das Problem noch? Darf ich nochmal nachfragen?

    Wie ich es verstehe:
    Code:
    Du hast eine Text-Datei in der du nach nem String suchst.
    Wenn eine Zeile X diesen String enthält, dann
      prüfe ob Zeile X+5 = Zeile X+15
        falls ja: Lösche Zeile X+9 bis X+13
    Da ich nicht für Windows skripte ist es etwas schwierig das genaue Problem zu erkennen. Ich frage mich aktuell 2 Dinge:
    Kann ich in ner .bat direkt die n-te Zeile aus ner Datei lesen (Ich fürchte das ist nicht so einfach… http://stackoverflow.com/a/2701917/1063730) sowie:
    Kkann ich gezielt Zeilen löschen und die modifizierte Datei abspeichern (Noch nicht nachgeschaut aber I've got a bad feeling about this)

    Wenn's noch iwie aktuell ist wäre es jut mal n Minimalbeispiel zu posten

  3. #3
    Hab es mit Python gelöst

  4. #4
    Zitat Zitat von one-cool Beitrag anzeigen
    Hab es mit Python gelöst
    Das nenn ich mal eine stilvolle Lösung.^^

  5. #5
    Konnte zwar kein Python vorher, aber mit meinen C++ Kenntnissen ging das dann eigentlich ziemlich schnell, sich das neue anzugewöhnen.

  6. #6
    Mein erster Gedanke war: Warum schreibt er kein Python-Skript?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •