Batch schreibt unerwünschten Text
Moin zusammen,
innerhalb einer Batch habe ich unter anderem einen Abschnitt aus dem von einer Zwischendatei alle Zeilen entfernt werden sollen, die einen bestimmten Text enthalten. Das hat im Grunde bisher gut funktioniert, nur seit einer Änderung gestern im Script funktioniert eben das gar nicht mehr wie gewünscht. Alle Versuche, das wieder zu beheben sind ohne Erfolg.
Inhalt der Zwischendatei:
Aus der Zwischendatei sollen dann für die Zieldatei alle Zeilen die "Failed" enthalten entfernt werden...
Den Pfad habe ich gekürzt, deswegen die ~Tilde~. Wie man sieht ist in der Zieldatei eine Leerzeile, dann ein paar Bindestriche und der Pfad zur Kontrolldatei in Großbuchstaben nun drin.
Der Fehler ist auch nicht im Script selbst drin, sondern auch über die cmd nachzustellen; das Ergebnis fließt natürlich sonst in die Zieldatei.
Ich steh auf dem Schlauch und wäre für eine Lösung und auch das Verstehen der Ursache dankbar.
Gruß
Itchley
innerhalb einer Batch habe ich unter anderem einen Abschnitt aus dem von einer Zwischendatei alle Zeilen entfernt werden sollen, die einen bestimmten Text enthalten. Das hat im Grunde bisher gut funktioniert, nur seit einer Änderung gestern im Script funktioniert eben das gar nicht mehr wie gewünscht. Alle Versuche, das wieder zu beheben sind ohne Erfolg.
Inhalt der Zwischendatei:
C:\>type "D:\Pfad~~~ ~~~Pfad\conf\Kontrolldatei.txt"
192.168.253.21
Failed to get value of SNMP variable. Timeout.
Failed to get value of SNMP variable. Timeout.
Failed to get value of SNMP variable. Timeout.
---------------------------------------------------------------------------------------------
192.168.253.22
Failed to get value of SNMP variable. Timeout.
Failed to get value of SNMP variable. Timeout.
Failed to get value of SNMP variable. Timeout.
---------------------------------------------------------------------------------------------
192.168.253.23
Failed to get value of SNMP variable. Timeout.
Failed to get value of SNMP variable. Timeout.
Failed to get value of SNMP variable. Timeout.
---------------------------------------------------------------------------------------------
Aus der Zwischendatei sollen dann für die Zieldatei alle Zeilen die "Failed" enthalten entfernt werden...
C:\>find /V "Failed" "D:\Dropbox\DIVIS\Entwicklung Dokuvorlage\Dokuwerkzeug\conf\Kontrolldatei.txt"
---------- D:\PFAD~~~ ~~~PFAD\CONF\KONTROLLDATEI.TXT
192.168.253.21
---------------------------------------------------------------------------------------------
192.168.253.22
---------------------------------------------------------------------------------------------
192.168.253.23
---------------------------------------------------------------------------------------------
Den Pfad habe ich gekürzt, deswegen die ~Tilde~. Wie man sieht ist in der Zieldatei eine Leerzeile, dann ein paar Bindestriche und der Pfad zur Kontrolldatei in Großbuchstaben nun drin.
Der Fehler ist auch nicht im Script selbst drin, sondern auch über die cmd nachzustellen; das Ergebnis fließt natürlich sonst in die Zieldatei.
Ich steh auf dem Schlauch und wäre für eine Lösung und auch das Verstehen der Ursache dankbar.
Gruß
Itchley
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2025054768
Url: https://administrator.de/forum/batch-schreibt-unerwuenschten-text-2025054768.html
Ausgedruckt am: 03.04.2025 um 03:04 Uhr
3 Kommentare
Neuester Kommentar

Nimm findstr statt find oder pipe stattdessen den Inhalt an find.
bzw.
Denn wenn du find einen Dateinamen übergibst dann schreibt er den mit in die Ausgabe, wenn du stattdessen nur Inhalt an find über die pipe übergibst dann macht es das nicht. Alternativ kannst du auch das Ergebniss mit for-Loop und "skip" verarbeiten um den Header zu eliminieren, ist aber mit obigen Methoden nicht nötig s. oben.
findstr /ilv "failed" Kontrolldatei.txt >neu.txt
type Kontrolldatei.txt|find /v "failed" >neu.txt
Denn wenn du find einen Dateinamen übergibst dann schreibt er den mit in die Ausgabe, wenn du stattdessen nur Inhalt an find über die pipe übergibst dann macht es das nicht. Alternativ kannst du auch das Ergebniss mit for-Loop und "skip" verarbeiten um den Header zu eliminieren, ist aber mit obigen Methoden nicht nötig s. oben.