Ergebnis 1 bis 7 von 7

Thema: Probleme bei Übergabe von mehr als 2 Parametern

  1. #1
    Registriert seit
    19.02.2008
    Beiträge
    509

    Probleme bei Übergabe von mehr als 2 Parametern

    Servus Ihr!

    Ich möchte, dass mir FMS32-Pro bei einer Pocsag-Meldung die Parameter 1, 3 und 4 übergibt.
    Mein Aufruf sieht folgendermaßen aus:

    C:\Program Files\Heirue-Soft\FMS32-PRO\Aktionen\poc_latest.bat "%4" - "%3" - "%1"

    nun ist es aber so, dass mir FMS32 lediglich die ersten beiden parameter übergibt und den letzten mit einem "-" beschreibt. Dabei ist es irrelevant, in welcher Reihgenfolge ich sie mir aufrufe (1,3,4/ 4,3,1/...). Immer der letzte wird zu einem Minus. Kann das FMS32 nicht mehr als 2 Parameter übergeben?

    Ich nutze Windows 7 Ultimate (hab's aber auch schon unter Xp Prof probiert, auch hier selbes Phänomen)

    Meine Batch sieht wie folgt aus (für den Fall das der fehler dort liegen sollte):

    FOR /f "tokens=1-2 delims=/ " %%a in ('TIME/T') do SET t_time=%%a%%b
    echo %t_time% > c:\poc1.txt
    echo %4 >> C:\poc1.txt
    echo %3 >> C:\poc1.txt
    echo %1 >> C:\poc1.txt
    C:\alarm\ansiasci c:\poc1.txt c:\poc.txt /ansi /o
    del C:\poc1.txt


    Die Parameter werden Zeilenweise in poc.txt geschrieben. Funktioniert auch alles soweit, bis eben auf das beschriebene Phänomen.

    Hoffe ihr könnt helfen,

    Feuermännchen
    Geändert von Feuermännchen (20.01.2010 um 16:45 Uhr) Grund: Rechtschreibung und Grammatik

  2. #2
    Registriert seit
    21.12.2005
    Beiträge
    129
    versuch mal "%1" "%2" "%3"
    also ohne -. mit den leerzeichen bin ich mir nicht sicher. musst du mal ausprobieren.

    %* übergibt alle 4 parameter.

  3. #3
    Registriert seit
    13.11.2006
    Beiträge
    885
    Hy.. Also als erstes:
    Programmpfad in FMS32 abändern in:

    "C:\Program Files\Heirue-Soft\FMS32-PRO\Aktionen\poc_latest.bat" "%4 %3 %1"

    Somit sollten dann schonmal die Parameter aus FMS32 richtig rausgehen.
    Die " am Anfang und Ende des Pfades bewirken, das Leerschritte im Pfad ignoriert werden.
    Indem Du dann "%1 %2 %3" als Parameter übergibst, weiß auch die Batch, was sie soll.


    In der Batch hingegen musst Du die Parameter anders entgegen nehmen.
    Denn die Batch geht der "Reihenfolge" nach.

    Sprich "%4" wäre dann %1 in der Batch.

    Wenn ich mich jetzt nicht irre, so sollte es doch so richtig sein.
    Wenn ich mich irren sollte, wird Felix mir sicher gleich wieder an den Hals springen.
    Moderatoren sind die besseren Liebhaber ^^

  4. #4
    Registriert seit
    19.02.2008
    Beiträge
    509
    Naja ok fast. Nun hab ich zwar alle parameter in die batch übernommen bekommen, aber sie liegen alle auf einer zeile und nicht zeilenweise... wat also nu?

  5. #5
    Registriert seit
    19.02.2008
    Beiträge
    509
    Sooooo, es lag am Aufruf der parameter im FMS32. es muss wie folgt aussehen, dass die parameter richtig übergeben werden:


    "C:\Program Files\Heirue-Soft\FMS32-PRO\Aktionen\poc_latest.bat" "%1 %2 %3 %4"

    Wichtig iss, wie schon erwähnt, alles der reihe nach und nichts durcheinander. Dann klappts auch mit dem nachbarn und seiner batch.

    Die bat sieht dann wie folgt aus:

    FOR /f "tokens=1-2 delims=/ " %%a in ('TIME/T') do SET t_time=%%a%%b
    echo %t_time% > c:\poc1.txt
    echo %1 >> C:\poc1.txt
    echo %2 >> C:\poc1.txt
    echo %3 >> C:\poc1.txt
    echo %4 >> C:\poc1.txt
    C:\alarm\ansiasci c:\poc1.txt c:\poc.txt /ansi /o
    del C:\poc1.txt

    Dank an alle Mitwirkenden!

    Thread kann closed.

  6. #6
    Registriert seit
    10.12.2003
    Beiträge
    3.902
    Also grundsätzlich übergibst du die Parameter in der Reihenfolge wie du willst und wenn ein Leerzeichen vorkommen kann, dann in Anführungszeichen:

    C:\pfad\batch.bat parameter1 "das ist der zweite parameter" 3
    in der Batch schauts dann so aus:
    %1 = parameter1
    %2 = "das ist der zweite parameter"
    %3 = 3

    Wenn du jetzt ein Programm mit FMS32pro ausrufst, dann haben die Platzhalter in FMS32pro(%x) nichts mit den Parametern in der Batch (auch %x) zu tun.
    In der Batch wird einfach durch gezählt.
    Felix
    felix[null][null][null]@funkmeldesystem.de

  7. #7
    Registriert seit
    19.02.2008
    Beiträge
    509
    Na ok. Wer weiß, was ich da noch für ein Fehler drin hatte. es ging jedenfalls erst, als auch in der batch die reihenwolge stimmte. dennoch danke allerseits

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •