PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bei Stichwort Alarm bzw: Meldung



emanHH
12.10.2005, 00:40
Kennt ihr eine Möglichkeit wenn beim RD im FMS Text ein bestimmter Text (Einsatzstichwort) auftaucht dieses zu verwenden um auf sich aufmarksam zu machen?

z.B. RD bekommt: VU-Ort:XYZ =Sprachausgabe!

Auf die Idee bin ich eigentlich nur gekommen durch den FMS-Speaker im AddOn Forum.

Kann man irgendwie soetwas ermöglichen, denn da kann man ja auch ein FMS Kürzel als Ausgabe Bezeichnung ändern (aus VU wird Verkehrsunfall) KAnn man da auf das Programm irgentwie zugriff bekomen da bei VU eine Aktion bekommt!

Bin noch nicht so bewandert im Programieren oder ist das gleich für den Müll Eimer das was ich geschrieben habe und nicht lösbar!?????



Mit freundlichen Grüssen
EmanHH

emanHH
12.10.2005, 16:18
Hab jetzt herausgefunden wie ich es hinbekomme bestimmte wörter in einer TXT DAtei (Sie aus dem FMS-Text erstellt wurde) zu suchen!

Problem ist nur das die Einzelnen "Details" mit "/" getrennt sind!

BsP: Auftragnummer/Uhrzeit/Notf/ERKR//Ort/Strasse/NAme



Wie bekomme ich nun die "/" weg, damit ich die Wörter einzelnd auswerten kann?

fwp
12.10.2005, 22:40
Original geschrieben von emanHH
Hab jetzt herausgefunden wie ich es hinbekomme bestimmte wörter in einer TXT DAtei (Sie aus dem FMS-Text erstellt wurde) zu suchen!

Problem ist nur das die Einzelnen "Details" mit "/" getrennt sind!

BsP: Auftragnummer/Uhrzeit/Notf/ERKR//Ort/Strasse/NAme



Wie bekomme ich nun die "/" weg, damit ich die Wörter einzelnd auswerten kann?

Jede "höhere" Programmiersprache bietet diverse String-Funktionen. Mit diesen läßt sich das Problem lösen.

Eine einfache Funktion zum splitten der Meldung in einzelne Worte läßt sich über eine Schleife lösen.

Man läuft den String von Position 1 bis zur Länge des Strings durch und merkt sich die Position des ersten Trennzeichens.
Dann schreibt man das erste "Wort" von der Position 1 bis zur Position des Zeichens vor dem Trennzeichen raus.

Anschließend sucht man ab dem Zeichen nach dem Trennzeichen weiter in Richtung Stringende.
Sobald man erneut ein Trennzeichen findet Schreibt man nun das "Wort, beginnend mit dem Zeichen das dem zuvor gefundenen Trennzeichen folgte bis zum Zeichen vor dem nächsten gefundenen Trennzeichen raus. Anschließend (wenn noch nicht das Stringende erreicht ist) wiederholt man diesen Schritt, bis man nach dem letzten gefundenen Trennzeichen keines mehr findet.
Das letzte "Wort" beginnt mit dem Zeichen nach dem letzten gefundenen Trennzeichen und umfaßt die restlichen Zeichen des Strings bis zum Ende.

Jetzt hat man alle Worte einzeln und kann sie mit den entsprechenden Ersatzbegriffen vergleichen.

Das ganze läßt sich auch in einer Funktion 'SplitLine' implementieren, die als Rückgabewert das jeweilige Wort hat und als übergabeparameter den Gesamtstring, Pos_1 und Pos_2.

Der erste Aufruf würde dann so aussehen:

String := 'Auftragnummer/Uhrzeit/Notf/ERKR//Ort/Strasse/NAme';
Pos_1 := 1;
Pos_2 := 0;
i := 1;
Trenner := '/';
While Pos_2 < Length (String) Do
Wort(i) := SplitLine(String, Pos_1, Pos_2, Trenner);
Pos_1 := Pos_2 + 1;
Inc(i);
Loop;

Nach dem ersten Aufruf hat Wort(1) den Wert Auftragnummer und Pos_2 den Wert 14.

Nach dem zweiten Aufruf hat Wort(2) den Wert Uhrzeit und Pos_2 den Wert 22.

...

Nach dem 'letzten' Aufruf hat Wort(8) den Wert NAme und Pos_2 den Wert 50.

Da 50 nicht mehr kleiner als die Länge des Strings ist (ist genau die Länge des Strings + 1) wird die Schleife beendet, und alle Worte sind in dem Array Worte() als einzelne Worte gespeichert

Die Funktion SplitLine könnte etwa folgenden Aufbau haben:

Function SplitLine(Text as String, Pos1 as Number, Pos2 as Number, TrennZeichen as Char) returns String;
Pos2 := FindPos(Text, Pos1, TrennZeichen);
if Pos2 < 1 then
Pos2 := Length(Text) + 1;
end if;
return substring(Text, Pos1, Pos2 - Pos1);
end function;

Die Funktionen FindPos und Substr werden in der Regel von der Hochsprache zur Verfügung gestellt.

emanHH
13.10.2005, 10:42
Erstmal danke für deine wirklich große Mühe, ich muss mich jetzt erstmal mit dem geschriebenen auseinandersetzen und sehen wie ich das anwende und mit meinen Anforderungen verknüpfe.

KAnn bei mir etwas länger dauern, aber man lernt auch dazu!

Bin leider kein SoftwareProfi, habs eher mit Elektronik zu tun.

Aber werde schon einen Lösungsweg finden.
Wenn ich fragen habe meld ich mich wieder!

emanHH
14.10.2005, 19:59
Musste mich wirklich durch die ganzen Befehle wühlen die es da gibt, habe es auch hinbekommen die Wörter einzelnd darzustellen und bei Alarm Stichwort eine Aktion auszuführen!

Jetzt will ich aber gerne als Aktion den FMS-Speaker aus dem AddOn Forum verknüpfen weis aber nicht wie ich die Worte / PArameter aus meiner Alarm.txt wieder rausbekomme und sie entweder als Parameter oder Wortliste an die EXE DAtei des FMS Speakers anhängen soll!

Hier das was ich bislang gemacht/gemurkst habe:

Del C:\alarm\daten\*.txt

Rem Ordner säubern


C:\alarm\sleep.exe
sleep 10

echo off %* >> C:\alarm\daten\ausgabe.txt

for /f "tokens=1 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=2 delims=/" %%i in
(C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=3 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=4 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=5 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=6 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt


find /I "KBF" C:\alarm\daten\Stichwort.txt

find /I "Notf" C:\alarm\daten\Stichwort.txt

find /I "kbf" C:\alarm\daten\Stichwort.txt

find /I "prx" C:\alarm\daten\Stichwort.txt

find /I "Notf_NA" C:\alarm\daten\Stichwort.txt

echo %errorlevel%


if %errorlevel%==0 start C:\alarm\daten\sprechen.bat


end

fwp
15.10.2005, 08:55
Original geschrieben von emanHH
Musste mich wirklich durch die ganzen Befehle wühlen die es da gibt, habe es auch hinbekommen die Wörter einzelnd darzustellen und bei Alarm Stichwort eine Aktion auszuführen!

Jetzt will ich aber gerne als Aktion den FMS-Speaker aus dem AddOn Forum verknüpfen weis aber nicht wie ich die Worte / PArameter aus meiner Alarm.txt wieder rausbekomme und sie entweder als Parameter oder Wortliste an die EXE DAtei des FMS Speakers anhängen soll!

Hier das was ich bislang gemacht/gemurkst habe:

Del C:\alarm\daten\*.txt

Rem Ordner säubern


C:\alarm\sleep.exe
sleep 10

echo off %* >> C:\alarm\daten\ausgabe.txt

for /f "tokens=1 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=2 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=3 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=4 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=5 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt

for /f "tokens=6 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt


find /I "KBF" C:\alarm\daten\Stichwort.txt

find /I "Notf" C:\alarm\daten\Stichwort.txt

find /I "kbf" C:\alarm\daten\Stichwort.txt

find /I "prx" C:\alarm\daten\Stichwort.txt

find /I "Notf_NA" C:\alarm\daten\Stichwort.txt

echo %errorlevel%


if %errorlevel%==0 start C:\alarm\daten\sprechen.bat


end

Wenn ich die obigen Befehle richtig verstanden habe, dann stehen bei Dir in der Datei C:\alarm\daten\alarm.txt die einzelnen Alarmstichworte.

Wie ist diese Datei aufgebaut, eine Lange Zeile, oder jedes Wort in einer einzelnen Zeile?

Wie erwartet FMS-Speaker die Parameter, bzw. kann man dem Programm auch eine Datei als Parameter übergeben, müßte dort in der Programmhilfe stehen.

Die Zeilen find /I "... erzeugen jede einen errorlevel, der aber durch die nächste Zeile direkt wieder überschrieben wird, außerdem werden Dir am Bildschirm die Zeilen der Datei Stichwort.txt angezeigt, die die Suchzeichenfolge enthalten, was Dir aber wahrscheinlich auch nicht weiterhilft.

Das was Dir find auf dem Bildschirm anzeigt landet aber außer auf dem Bildschirm nirgendwo. wird der Suchbegriff gefunden, so wird der errorlevel auf 0 gesetzt, wird nichts gefunden so ist der errorlevel auf 1

Meines Erachtens müßtest Du den Findblock wie folgt aufbauen, wobei Du vorher klären mußt, ob mehrere Stichworte innerhalb einer Alarmierung auftreten können. Nachfolgendes Beispiel "sammelt " alle Stichworte (je Stichwort gibt es eine eigene Zeile in der Datei Meldung.txt) und gibt dann eine Gesamtmeldung aus, wenn nur ein Stichwort vorkommen kann, dann mußt Du das REM vor den GOTO ... entfernen. In den Zeilen ECHO "..." mußt Du die Punkte durch den Klartext ersetzen, den Du ausgeben möchtest.:

------------------------------------------------------------
@echo off
:Find1
find /I "KBF" C:\alarm\daten\alarm.txt
if Errorlevel==1 GOTO Find2
ECHO "...." >> C:\alarm\daten\meldung.txt
REM GOTO Ausgabe
:Find2
find /I "Notf" C:\alarm\daten\Stichwort.txt
if Errorlevel==1 GOTO Find3
ECHO "...." >> C:\alarm\daten\meldung.txt
REM GOTO Ausgabe
:Find3
find /I "kbf" C:\alarm\daten\Stichwort.txt
if Errorlevel==1 GOTO Find4
ECHO "...." >> C:\alarm\daten\meldung.txt
REM GOTO Ausgabe
:Find4
find /I "prx" C:\alarm\daten\Stichwort.txt
if Errorlevel==1 GOTO Find5
ECHO "...." >> C:\alarm\daten\meldung.txt
REM GOTO Ausgabe
:Find5
find /I "Notf_NA" C:\alarm\daten\Stichwort.txt
if Errorlevel==1 GOTO Ende
ECHO "...." >> C:\alarm\daten\meldung.txt
GOTO Ausgabe

:Ausgabe
REM hier kommt jetzt der Aufruf von FMS-Speaker mit den
REM entsprechenden Parametern hin. (anstelle der Punkte)

...

:Ende
---------------------------------------

Ich hoffe, damit kommst Du ein Stück weiter.

emanHH
15.10.2005, 11:47
DAnke für deine Hilfe!

Also ich möchte, wenn eine der Meldungen im Alarmtext auftaucht (die momentanen Stichworte sind nur zum Test, später sollen sie durch Ortsnamen geändert werden), dass dann alle Stichworte die in der Alarm.txt stehen an den FMS-Speaker rausgegeben werden.

Der FMS-Speaker erhält seine Informationen als:

FMS-Speaker.exe "TEXT TEXT TEXT"

Oder

per FMS-PRO als:

FMS-Speaker.exe %1 %2 "3"


mein erstes Problem war, da ich wollte war nur die "/" aus den Texten zu filtern, damit der Speaker per Erkennung auch aus z.B.: KBF -----> Krankenbeförderung macht!

DAs kann man im dazugehörigem Editor einstellen!

Als ich mir gedanken gemacht hatte dachte ich mir wenn ich schon umweg über das "Zerstückeln" des Textes machen muss kann man ja auch eine "Filterung einbauen, samit er nur redet, wenn ein Einsatz z.B. beimir im Ort ist!

Wie bekomm ich jetzt einen Text aus einer .txt hinter eine Datei.exe?

Achso: Die Stichworte in der alarm.txt sind untereinander geschrieben müssen also erstmal in eine Zeile geschrieben werden!

Sorry ich komm einfach nicht weiter, absoluter Gehirntot!


Mit freundlichen Grüssen Christian

emanHH
15.10.2005, 23:08
Fast fertig, nur:
Was habe ich falsch gemacht, das in der Alarm.txt alles untereinander steht!
ICh benötige am Ende alle Worte hintereinander mit Leerzeichen!
Wie bekomm ich es hin das kein ZEilensprung entsteht beim kopieren in die alarm.txt????

Mein Programm:

Del C:\alarm\daten\*.txt

Rem Ordner säubern

C:\alarm\sleep.exe
C:\alarm\sleep 10

echo off %* >> C:\alarm\daten\ausgabe.txt

for /f "tokens=1 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\nummer.txt
for /f "tokens=2 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=3 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=4 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=5 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=6 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=7 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=8 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt
for /f "tokens=9 delims=/"%%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm.txt


:Find1
find /I "hunf" C:\alarm\daten\alarm.txt
if Errorlevel==1 GOTO Find2
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find2
find /I "feuer" C:\alarm\daten\alarm.txt
if Errorlevel==1 GOTO Find3
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find3
find /I "kbf" C:\alarm\daten\alarm.txt
if Errorlevel==1 GOTO Find4
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find4
find /I "prx" C:\alarm\daten\alarm.txt
if Errorlevel==1 GOTO Find5
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find5
find /I "Notf_NA" C:\alarm\daten\alarm.txt
if Errorlevel==1 GOTO Ende
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe

:Ausgabe

for /f "tokens=*" %%i in (C:\alarm\daten\alarm.txt) do C:\scanner\fms-speaker3\fms-speaker.exe %%i



:ENDE


end

Kalle
16.10.2005, 11:35
Hallo, ich habe das bei mir so gelöst.
-------------------------------------------------------------
@echo off

echo.
echo Alarmierung XXX
echo.

echo %1 %2 > "c:\alarmruf\XXX.txt"

find /c /i "ort" "c:\alarmruf\XXX.txt"
if %errorlevel%==0 goto sms
if %errorlevel%==1 goto weiter1

:weiter1
find /c /i "transport" "c:\alarmruf\XXX.txt"
if %errorlevel%==0 goto ende
if %errorlevel%==1 goto weiter2

:weiter2
find /c /i "unfall" "c:\alarmruf\XXX.txt"
if %errorlevel%==0 goto sms
if %errorlevel%==1 goto weiter3

:weiter3
find /c /i "ort2" "c:\alarmruf\XXX.txt"
if %errorlevel%==0 goto sms
if %errorlevel%==1 goto weiter4

:weiter4
find /c /i "ort3" "c:\alarmruf\XXX.txt"
if %errorlevel%==0 goto sms
if %errorlevel%==1 goto ende

:SMS
c:\alarmmail\clemail.exe -to yyyl@gmx.de -from yyy@gmx.de -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser yyy -poppass yyy -subjectfile "c:\alarmruf\XXX.txt" -body "no"
goto ende

:ende
c:\alarmruf\wait 5 /o
---------------------------

emanHH
16.10.2005, 12:44
HAbs endlich geschaff:

Kleinigkeiten muss ich noch ausbessern, aber läuft erstmal:

Del C:\alarm\daten\*.txt

Rem Ordner säubern


C:\alarm\sleep.exe
C:\alarm\sleep 10
echo off %* >> C:\alarm\daten\ausgabe.txt

for /f "tokens=1 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm1.txt
for /f "tokens=2 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm2.txt
for /f "tokens=3 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm3.txt
for /f "tokens=4 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm4.txt


set /P name1=<C:\alarm\daten\alarm1.txt

set /P name2=<C:\alarm\daten\alarm2.txt

set /P name3=<C:\alarm\daten\alarm3.txt


echo %name1% %name2% %name3% >> C:\alarm\daten\sprechen.txt

:Find1
find /I "hunf" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find2
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find2
find /I "feuer" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find3
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find3
find /I "kbf" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find4
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find4
find /I "prx" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find5
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find5
find /I "Notf_NA" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Ende
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe

:Ausgabe

for /f "tokens=*" %%i in (C:\alarm\daten\sprechen.txt) do C:\scanner\fms-speaker3\fms-speaker.exe %%i


:ENDE


end

fwp
16.10.2005, 22:23
Original geschrieben von emanHH
HAbs endlich geschaff:

Kleinigkeiten muss ich noch ausbessern, aber läuft erstmal:

Del C:\alarm\daten\*.txt

Rem Ordner säubern


C:\alarm\sleep.exe
C:\alarm\sleep 10
echo off %* >> C:\alarm\daten\ausgabe.txt

for /f "tokens=1 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm1.txt
for /f "tokens=2 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm2.txt
for /f "tokens=3 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm3.txt
for /f "tokens=4 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i>>C:\alarm\daten\alarm4.txt


set /P name1=<C:\alarm\daten\alarm1.txt

set /P name2=<C:\alarm\daten\alarm2.txt

set /P name3=<C:\alarm\daten\alarm3.txt


echo %name1% %name2% %name3% >> C:\alarm\daten\sprechen.txt

:Find1
find /I "hunf" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find2
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find2
find /I "feuer" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find3
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find3
find /I "kbf" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find4
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find4
find /I "prx" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find5
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find5
find /I "Notf_NA" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Ende
ECHO "...." >> C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe

:Ausgabe

for /f "tokens=*" %%i in (C:\alarm\daten\sprechen.txt) do C:\scanner\fms-speaker3\fms-speaker.exe %%i


:ENDE


end


Habe (nur wegen der besseren Lesbarkeit, weil der Server bestimmte sonderzeichen als HTML-Code versteht die Zeichen > und < durch « und » ersetzt.

Del C:\alarm\daten\*.txt

Rem Ordner säubern


C:\alarm\sleep.exe
C:\alarm\sleep 10
echo off %* »» C:\alarm\daten\ausgabe.txt

for /f "tokens=1 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i»»C:\alarm\daten\alarm1.txt
for /f "tokens=2 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i»»C:\alarm\daten\alarm2.txt
for /f "tokens=3 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i»»C:\alarm\daten\alarm3.txt
for /f "tokens=4 delims=/" %%i in (C:\alarm\daten\ausgabe.txt) do echo %%i»»C:\alarm\daten\alarm4.txt


set /P name1=«C:\alarm\daten\alarm1.txt

set /P name2=«C:\alarm\daten\alarm2.txt

set /P name3=«C:\alarm\daten\alarm3.txt


echo %name1% %name2% %name3% »» C:\alarm\daten\sprechen.txt

:Find1
find /I "hunf" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find2
ECHO "...." »» C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find2
find /I "feuer" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find3
ECHO "...." »» C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find3
find /I "kbf" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find4
ECHO "...." »» C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find4
find /I "prx" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Find5
ECHO "...." »» C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe
:Find5
find /I "Notf_NA" C:\alarm\daten\sprechen.txt
if Errorlevel==1 GOTO Ende
ECHO "...." »» C:\alarm\daten\speaker\meldung.txt
GOTO Ausgabe

:Ausgabe

for /f "tokens=*" %%i in (C:\alarm\daten\sprechen.txt) do C:\scanner\fms-speaker3\fms-speaker.exe %%i


:ENDE


end

Also beim Übernehmen dran denken statt der Zeichen « bzw. » die richtigen Zeichen einsetzen.