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-Key: 350361

Url: https://administrator.de/contentid/350361

Printed on: April 25, 2024 at 23:04 o'clock

Member: SeaStorm
Solution SeaStorm Sep 29, 2017 at 09:38:37 (UTC)
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
Member: georg2204
georg2204 Sep 29, 2017 at 10:39:17 (UTC)
Goto Top
Vielen Dank SeaStorm!

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

Viele Grüße,
Georg
Member: Biber
Biber Sep 29, 2017 at 11:27:07 (UTC)
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