Re: Bin weiter gekommen
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.
Geändert von fwp (15.10.2005 um 08:58 Uhr)
Mit kameradschaftlichen Grüßen
FWP