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
Please also mark the comments that contributed to the solution of the article
Content-Key: 615227
Url: https://administrator.de/contentid/615227
Printed on: April 19, 2024 at 05:04 o'clock
8 Comments
Latest comment
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'"