Toon posts:

[C++] perl commando vanuit mijn progje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een watchdog aan het maken voor MRTG. Wanneer ik een cfg file wil laten uitvoeren doe ik dat nu nog via een bat file. Daar staat in :

start /Dc:\mrtg-2.9.17\bin perl mrtg --logging=eventlog mrtg.cfg

Dit is dus ook de regel die via de watchdog moet worden uigevoerd. Maar als ik dat probeer werkt dat niet. Ik doe in de C++ code:

system("start /Dc:\mrtg-2.9.17\bin perl mrtg --logging=eventlog mrtg.cfg");

Er wordt dan wel een dos box opgestart, maar ook meteen weer afgesloten.
Wat zie ik over het hoofd.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

volledige pad voor perl opgeven?
volledige pad voor mrtg opgeven?
DOET die commandline regel het wel?

Verwijderd

Topicstarter
Als ik handmatig op de cmdline intiep:

start /Dc:\mrtg-2.9.17\bin perl mrtg --logging=eventlog mrtg.cfg

werkt het. Dus deze regel is goed. En als ik in de C++ code iets doe als:

system("dir");

Werkt dit ook. Maar wanneer ik 'dir' vervang door 'start /Dc:\mrtg-2.9.17\bin perl mrtg --logging=eventlog mrtg.cfg' gaat het mis.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 21 mei 2002 14:39 schreef knien001 het volgende:
gaat het mis.
Dan komen punten 1 en 2 uit mijn lijstje aan bod gok ik zo ;)

Verwijderd

Topicstarter
Dat werkt ook van geen kant. Maar het is ook niet nodig want Perl staat in het System Path.

Misschien nog een ander idee?

Verwijderd

Topicstarter
Elk idee!!

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

Op dinsdag 21 mei 2002 14:58 schreef knien001 het volgende:
Elk idee!!
Pfff... je schreeuwt wel hard. :{

Maar probeer eens:
code:
1
system("start /Dc:\\mrtg-2.9.17\\bin perl mrtg --logging=eventlog mrtg.cfg");

  • Marcj
  • Registratie: November 2000
  • Laatst online: 11:58
system("start /Dc:\\mrtg-2.9.17\\bin perl mrtg --logging=eventlog mrtg.cfg");

Je moet speciale karakters escapen
en graag niet meer binnen 24 uur schoppen ;)

edit: te laat

  • hufkes
  • Registratie: Maart 2000
  • Laatst online: 26-08 18:43

hufkes

nee, daar staat niet hufter!

anders roep je toch gewoon die batchfile aan
code:
1
system("batchaanroepbestandje.bat");

Onderstaande signature is al >20jr oud ***hoe dan***
---
Het internet is een veelbelovend medium
....dat maar heel weinig van zijn beloftes nakomt.
Wat weg is... raak je nooit meer kwijt :P


  • Fvdlaar
  • Registratie: Oktober 2001
  • Laatst online: 06-08 10:57
Misschien dat start een intern commando van de cmdline is, dus probeer es om start weg te laten.

Verwijderd

Topicstarter
Op dinsdag 21 mei 2002 15:01 schreef Poohbear het volgende:

[..]

Pfff... je schreeuwt wel hard. :{

Maar probeer eens:
code:
1
system("start /Dc:\\mrtg-2.9.17\\bin perl mrtg --logging=eventlog mrtg.cfg");
Sorry maar ik ben al van vanmorgen 8 uur aan het proberen. En waarschijnlijk zal het wel weer iets heel kleins zijn, des te frustrerender al je het niet ziet.
Maar mijn excuses voor het geschreeuw. :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

system kan geen spaties aan dacht ik

man execv

Doet iets met Cloud (MS/IBM)


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

http://gathering.tweakers.net/forum/list_message/13356388#13356388
verketterd en al maar ach I dont care
aanroepen met: ./programma start /Dc:\mrtg-2.9.17\bin perl mrtg --logging=eventlog mrtg.cfg

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Bedankt Poohbear, het ziet er naar uit dat het werkt. het was dus inderdaad iets kleins, een \.

*D
Pagina: 1