Reguläre Ausdrücke in FINDSTR
Hallo,
mit kann ich alle REM Befehle aus einer Batch entfernen.
An einigen Stellen muß der Befehl aber unverändert bleiben, z.B. wird er mit ECHO> in eine andere Datei geschrieben. An dieser Stelle findet sich vor dem REM ein Dachzeichen, also ^REM.
Dafür würde ich eigentlich nehmen, dann wird aber offenbar gar nichts verändert.
Wie lautet der Befehl damit alle Kommentare aus der Datei entfernt werden außer bei denen:
a) eine unbekannte Menge Leerzeichen vor dem Befehl steht
oder
b) die Zeichenfolge ^REM verwendet wird
Grüße
mit
FINDSTR /V /R "\<REM\>" "quelle.bat" >"ziel.bat"
An einigen Stellen muß der Befehl aber unverändert bleiben, z.B. wird er mit ECHO> in eine andere Datei geschrieben. An dieser Stelle findet sich vor dem REM ein Dachzeichen, also ^REM.
Dafür würde ich eigentlich
FINDSTR /V /R "\<^REM\>" "quelle.bat" >"ziel.bat"
Wie lautet der Befehl damit alle Kommentare aus der Datei entfernt werden außer bei denen:
a) eine unbekannte Menge Leerzeichen vor dem Befehl steht
oder
b) die Zeichenfolge ^REM verwendet wird
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1111199946
Url: https://administrator.de/forum/regulaere-ausdruecke-in-findstr-1111199946.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
4 Kommentare
Neuester Kommentar
>"ziel.bat" (findstr /vrc:"^[^ ]*REM" "quelle.bat" | findstr /vrc:"^[ ]*\^REM")
Wieso immer noch Batch? Powershell bietet viel bessere Regex Unterstützung....
Ach so war das von dir gemeint, na dann reicht ja
>"ziel.bat" (findstr /vrc:"^[ ]*REM" "quelle.bat")
Das Programm ist zu groß um jetzt noch wegen einer Zeile mit Powershell anzufangen
Problemlos als Einzeiler in die Batch nutzbar powershell -EP Bypass -C "gc 'D:\quelle.bat | ?{$_ -notmatch '^\s*REM'}' | sc 'D:\ziel.bat' -Encoding Default"