Zeilen in Batch löschen bis ensprechender Text gefunden
Hallo Community
Ich mochte aus einer Datei Zeilen entfernen bis der Text -----BEGIN CERTIFICATE----- erscheint
Bei einer Umwandlung einer Zertifikatsdatei wurde mir diese mit Attributen erstellt. Sind 9 Zeilen, wobei ich mir nicht sicher sein kann, ob das immer 9 Zeilen sind
Somit möchte ich lieber nach -----BEGIN CERTIFICATE----- suchen und alle Zeilen oberhalb löschen. Wie könnte ich das über ein Batch lösen?
Im Moment habe ich es mit untenstehenen Syntax gelöst wobei das +9 für die Anzahl Zeilen steht, was nicht garantiert ist.
Im Voraus vielen Dank für Eure Hilfe
Ralus67
Ich mochte aus einer Datei Zeilen entfernen bis der Text -----BEGIN CERTIFICATE----- erscheint
Bei einer Umwandlung einer Zertifikatsdatei wurde mir diese mit Attributen erstellt. Sind 9 Zeilen, wobei ich mir nicht sicher sein kann, ob das immer 9 Zeilen sind
Somit möchte ich lieber nach -----BEGIN CERTIFICATE----- suchen und alle Zeilen oberhalb löschen. Wie könnte ich das über ein Batch lösen?
Im Moment habe ich es mit untenstehenen Syntax gelöst wobei das +9 für die Anzahl Zeilen steht, was nicht garantiert ist.
@echo off
for %%i in (Ramon.crt) do (
more +9 "%%i">"%%i.temp"
del "%%i"
)
Im Voraus vielen Dank für Eure Hilfe
Ralus67
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 615227
Url: https://administrator.de/forum/zeilen-in-batch-loeschen-bis-ensprechender-text-gefunden-615227.html
Ausgedruckt am: 04.04.2025 um 04:04 Uhr
8 Kommentare
Neuester Kommentar
Ich verstehe den aktuellen Sinn deiner FOR Schleife nicht, um ehrlich zu sein. Ramon.crt ist doch die Datei die du einkürzen willst, oder liege ich falsch?
Ungetestet ...
Steffen
set "filename=Ramon.crt"
for /f "delims=:" %%i in ('findstr /nc:"-----BEGIN CERTIFICATE-----" "%filename%"') do (
more +%%i "%filename%">"%filename%.temp"
del "%filename%"
)
Steffen

Nimm doch gleich die Powershell mit nem büschen Regex schnell gemacht ...
Geht auch in ner Batch verwurstet
[regex]::Match((gc 'D:\datei.txt' -raw),'(?sm)^-----BEGIN CERTIFICATE-----.*?^-----END CERTIFICATE-----').Value | sc 'D:\cert.cer'
powershell -EP Bypass -C "[regex]::Match((gc 'D:\datei.txt' -raw),'(?sm)^-----BEGIN CERTIFICATE-----.*?^-----END CERTIFICATE-----').Value | sc 'D:\cert.cer'"