IPS_ExecuteEx

IPS muss als Systemdienst laufen. Sonst gibt es da noch ganz andere Fehlermeldungen :slight_smile:

Hast mal meine Idee von hier ausprobiert? http://www.ip-symcon.de/forum/f52/batch-werte-ip-symcon-zurueckgeben-16218/

paresy

Den Befehl im Link habe ich probiert, jedoch kann ich die tftp.exe nicht ausführen, da diese angeblich nicht gefunden wird. Sieht so aus, als wenn dies IPS nicht ausführen darf. Auch nicht mit c:\windows ftp.exe.

string(87) "Der Befehl „tftp“ ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Ich muss doch noch mal fragen. Mittlerweile habe ich IPS auf Windows Home Server 2011 am Laufen. Da nun ein Server-OS habe ich mal irgendow gelesen, dass es immer eine ID 0 gibt, damit müßte dann doch IPS-ExecuteEx laufen. Aber auch hier nicht. Ist das doch ein Fehler von IPS?

IPS_Execute("C:/IP-Symcon-Daten/Hipath/abholen.bat", "", false, false);

Das soll ohne Benutzeranmeldung gehen. Bei mir aber auch nicht. Das direkt Ausführen der Batch funktioniert super. Nun soll das aber automatisch gehen, also ohne UND mit einer evtl. Benutzeranmeldung.

Hallo,

Ich versuche verzweifelt über IPS eine Batchdatei zu starten. Habe in der Doku den entsprechenden Befehl dafür gefunden. Wenn ich dieses Skript ausführe, passiert aber nichts.

IPS_Execute("C:\IP-Symcon\automatic	est.bat", "", false, false);

Was mach ich hier falsch? :confused::confused:

Welches Betriebssystem?
Was macht die batch?
Ist es evtl. interaktiv, dann IPS_ExecuteEx verwenden.
Besser immer Slashs (/) benutzen.

Ich habe auch vor einiger Zeit mal was mit Batches gemacht und mir anfangs ziemlich die Finger gebrochen weil (scheinbar) nix funktioniert hat. Ich kriege gerade nicht 100%ig zusammen, wie ich es gelöst habe, habe mich aber so ganz peu a peu rangetastet:

Zunächst mal ganz simple Sachen im Batch selbst gemacht, wie den aktuellen Pfad oder ein „Dir“ in eine Datei geschrieben. (dir >d:\dir.txt).

Dann kann man recht leicht sehen, ob zumindest die Batch gestartet wird.

Zum Laufen gebracht habe ich mein Zeugs mit


ips_execute( "cmd /c d:/ips/test.bat" , "" , false , true );

wobei es, glaub ich, Scherereien gibt, wenn das aufgerufene Batch dann wieder eine exe aufruft, die irgendwelche Standard-I/O’s bedient.

@Ferengi-Master:
Achja klar :o
Betriebssystem: WIN 7 Prof.
IPS-Version: 2.60 (10.9.2012 #2510)
Die Batchdatei soll vorerst mal nur das Command Fenster öffnen. Der Inhalt ist deshalb nur:

cmd

Wenn ich die test.bat manuell starte öffnet sich das Command Fenster. Wenn ich das Skript, indem die Datei ausgeführt werden soll, starte, passiert leider nichts. Habe es schon in allen möglichen Varianten probiert … sprich mit (/) und mit (). Auch der Befehl „IPS_ExecuteEx“ führt die Datei nicht aus.

@jwka:
Hab es auch mit deiner Variante versucht. Ergebnis leider negativ :frowning:

Vielleicht so:

IPS_ExecuteEx("C:/IP-Symcon/automatic/test.bat", "", false, false, 2);

mit den Zahlen einfach mal spielen.

Gruß
Bruno

Mit dem Wert 0 und 1 führt er zwar das skript aus (benötigt übrigens auch knapp 4sek. dafür :eek:), aber es passiert nichts. Bei dem Wert 2 bekomme ich folgende Meldung:

Warning: There were no token found for specified session: 2 in C:\IP-Symcon\scripts\43876.ips.php on line 3
[0] in function IPS_ExecuteEx in C:\IP-Symcon\scripts\43876.ips.php on line 3

Das gleiche auch bei 3, 4 und 5 nur eben mit:

... specified session: 3 in ...
... specified session: 4 in ... 
... specified session: 5 in ...

usw.

:confused:

Habe mal ne Suchmaschine bemüht und etwas gespielt :smiley:

Probier mal die batch-Datei so:

start "" "c:\windows\system32\cmd.exe"
exit

Gruß
Bruno

Hi Fred,

Wenn ich dein Beispiel in meine „test.bat“ Batchdatei schreibe und diese manuell ausführe, öffnet sich das Command Fenster. Versuche ich das Ganze über IPS mit IPS_EXECUTE wieder nichts :frowning:

auf diese Weise nichts

IPS_Execute("C:\IP-Symcon\automatic	est.bat", "", false, false);

und auf diese Weise nichts

IPS_Execute("C:/IP-Symcon/automatic/test.bat", "", false, false);

Habs jetzt mal Probehalber mit der Endung .cmd und .exe versucht -> negativ
Funktioniert das bei euch? Könnte das vielleicht mal jemand kurz testen :o

Wir waren bei IPS_ExecuteEX !! :confused:

Probiert hatte ich es und dann erst geschrieben :rolleyes:

Evlt. gibt’s einen einfacheren Weg als über einen Betriebssystemcall:

-> Aktiviere die CURL Extension von PHP
-> Nutze Curl um die Datei direkt mit TFTP abzuholen, da CURL TFTP unterstützt.

cURL and libcurl

Probier’s mal.

Hab jetzt folgendes beobachtet:

Folgendes Skript wurde ausgeführt:

IPS_Execute("C:/IP-Symcon/automatic/test.bat", "", false, false);

in der test.bat steht …

start "" "c:\IP-Symcon\automatic	ext.txt"
exit

… zum öffnen einer Textdatei. Starte ich die test.bat manuell, wird die Datei mit notepad geöffnet. Jetzt habe ich die Datei wieder geschlossen und das Skript ausgeführt. Ich hatte nebenbei den Taskmanager offen und unter „Prozesse“ mit „Prozesse aller Benutzer anzeigen“ gesehen, dass eine notepad.exe in der Liste dazugekommen ist :confused:
Also irgendwas wird ausgeführt, nur nicht korrekt :rolleyes:
Weiters habe ich den Test mit () und mit (/). Es müssen definitiv Slashes (/) sein, damit der Eintrag im Taskmanager erscheint …

@Fred: Ja ich weiß, dass das Thema IPS_ExecuteEX heißt. Ich hab mir gedacht, dass hier gut passen könnte um nicht einen weiteren Thread zu öffnen

EDIT:
!!! ERFOLGSMELDUNG !!!
Hab es jetzt mit IPS_ExecuteEx und den Slashes versucht …

IPS_ExecuteEx("C:/IP-Symcon/automatic/test.bat", "", false, false, 1);
```php

... und siehe da ... es funktioniert.

Danke Leute :D

So (/) oder so (\), aber nicht so () :smiley:

Mann, da ha ich ja was ins Rollen gebracht…
Habe meine Gebührensache nun anders gelöst: Die Anlage kann die Gesprächsdatensätze auch per TCP-Client loswerden. Also im IPS einen Server-Socket mit dem passenden Port angelegt. RegVar und Script angelegt. Nun wird nach jedem Gespräch der Datensatz an IPS gesendet und da nach definierten Kriterien zerlegt (Array) und in eine mySQL-DB geschrieben, um sie später gefiltert auszulesen und im Webfront anzeigen zu können.

PS: das Ausführen von externen Scripten

IPS_ExecuteEx("C:/IP-Symcon/automatic/test.bat", "", false, false, 1);[

geht leider immer noch nicht. Hatte noch Mal mit der IPS-Sicherung von Toni (PULSE) probiert, aber es will weiterhin nicht. Muss dazu sagen, ich bin nur sporadisch per RDP am Server angemeldet. Ansonsten nur per Client-PC. Sieht aber beim direkten Starten auch merkwürdig aus.