georg2204
Goto Top

Batch um Satz zwischen Anführungszeichen aus 1. Zeile in Textdatei lesen

Hallo,

nach langem Suchen und Probieren komme ich leider nicht mehr weiter.

Ich habe eine Textdatei, aus dieser soll die Meldung der ersten Zeile gelesen und als Variable oder in eine neue Textdatei gespeichert werden, um diesen Satz dann an Blat zu übergeben.

Diese wird IMMER in der ersten Zeile erscheinen und ist so aufgebaut:

:TextAlNum = "Meldung AN-1 19.09.17, 17:45 Stoerung behoben. Geschw=2.2m/s Leist=0.0kW"  

Der Text innerhalb der Anführungszeichen ändert sich bei jeder neuen (Datei) Meldung, weshalb auch nur der gesamte Satz innerhalb der Anführungszeichen gelesen werden soll.

So müsste die Ausgabe dann sein:

Meldung AN-1 19.09.17, 17:45 Stoerung behoben. Geschw=2.2m/s Leist=0.0kW

Ich habe nun folgenden Code:

@echo off & setlocal EnableDelayedExpansion 
>nul chcp 65001 
<"Stoerung.html" (   
  for /l %%i in (1) do set /p ":"   
  set /p "zeile="   
) 

echo(!zeile! 
>nul chcp 850 

pause

Ich weiß nicht, wie ich dieses :TextAlNum = " ... " weg gefiltert bekomme...


Auch ist alles von meinem Hauptprogramm als Batch geschrieben, weshalb ich nur ungern auf andere Sprachen ausweichen möchte.

Vielen Dank für jede Hilfe,

Gruß Georg

Content-ID: 350361

Url: https://administrator.de/forum/batch-um-satz-zwischen-anfuehrungszeichen-aus-1-zeile-in-textdatei-lesen-350361.html

Ausgedruckt am: 09.04.2025 um 23:04 Uhr

SeaStorm
Lösung SeaStorm 29.09.2017 um 11:38:37 Uhr
Goto Top
hi

@echo off & setlocal EnableDelayedExpansion 
>nul chcp 65001 
<"Stoerung.html" (   
  for /l %%i in (1) do set /p ":"   
  set /p "zeile="  
) 
set zeile=!zeile:~14!
set zeile=!zeile:~0,-1!
echo(!zeile! 
>nul chcp 850 

pause
georg2204
georg2204 29.09.2017 um 12:39:17 Uhr
Goto Top
Vielen Dank SeaStorm!

Es funktioniert perfekt, jetzt hab ich auch den Weg dorthin verstanden!

Viele Grüße,
Georg
Biber
Biber 29.09.2017 um 13:27:07 Uhr
Goto Top
Moin georg2204,

eine andere Möglichkeit wäre, zwei FOR/F-Anweisungen nacheinander laufen zu lassen.

Beispiel am CMD-Prompt:
C:\Users\Biber>set "DeineZeile=:TextAlNum = "Meldung AN-1 19.09.17, 17:45 Stoerung behoben. Geschw=2.2m/s Leist=0.0kW""  

C:\Users\Biber>for /f "delims== tokens=2" %i in ("%DeineZeile%") do @for /f "delims=" %j in (%i) do @echo %j  
Meldung AN-1 19.09.17 17:45 Stoerung behoben. Geschw 2.2m/s Leist 0.0kW
("C:\Users\Biber>" ist mein Prompt, dahinter der Befehl; letzte Zeile ist die Ausgabe)

Ich habe das Gleichheitszeichen als Delimiter genommen.

Grüße
Biber