Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10920[/thread]

system-Befehl führt *.pl aus, aber keine *.bat



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
musambani
 2007-11-29 13:18
#103255 #103255
User since
2007-11-29
7 Artikel
BenutzerIn
[default_avatar]
Hi!
Hoffe, mir kann hier jemand helfen...
Ganz von vorne: Ich habe ein Programm (Tosca), daß die *.exe eines anderen Programms (Abaqus) aufruft. Den Pfad zu dieser *.exe kann ich in der Konfiguration von Tosca einstellen. Ich habe ein Perl-Skript, daß zwischen den beiden Programmen Tosca und Abaqus sitzt (die Dateien, die zwischen beiden Programmen ausgetauscht werden, werden damit etwas manipuliert), das ich auch an Stelle der *.exe von Abaqus angeben kann. Fuktioniert auch wunderbar (Tosca startet mein Skript, mein Skript startet Abaqus).
Aber: sobald ich im Perlskript an einen Punkt komme, wo der "system"-Aufruf auftaucht, wird dieser nicht ausgeführt. Ich habe das Problem so weit reduzieren können, daß mein aktuelles Skript inzwischen nurnoch aus dem Erstellen eines neuen Ordners und dem Aufruf einer *.bat-Datei besteht, die einen neuen Ordner erstellt (Es werden also zwei Ordner erstellt mit unterschiedlichen Namen, einer direkt vom Skript, einer von der *.bat-Datei). Wenn ich das Skript per Hand starte, funktioniert alles tadellos, wenn das Skript von Tosca gestartet wird, bekomme ich nur den Ordner, den das Skript erstellt hat.
Weiter komisch ist, daß in meinem tatsächlichen Skript (also nicht das abgespeckte), auch an anderen Stellen der system-Befehl auftaucht; an diesen Stellen werden allerdings nur *.pl-Skripts ausgeführt, was auch tadellos funktioniert.
Also, kurz: ein Perlskript schafft es nicht, per System-Aufruf eine bat-Datei zu starten (wenn das Skript nich von Hand, sondern von einem Programm gestartet wurde).

Vielen Dank schonmal! Sitze da schon seit ein paar Tagen dran...

btw: angeblich hat mein Vorgänger das Problem auch schon gehabt. Er hat es aber nur unter Linux in den Griff bekommen.....
renee
 2007-11-29 13:20
#103256 #103256
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zeig mal etwas Code...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
musambani
 2007-11-29 13:22
#103258 #103258
User since
2007-11-29
7 Artikel
BenutzerIn
[default_avatar]
eigentlich nur das Erstellen der beiden Ordner>

Code: (dl )
1
2
3
4
use FindBin;

mkdir("C:/ordner_vom_perlskript");
exec($FindBin::Bin."/bat.bat");
musambani
 2007-11-29 13:24
#103259 #103259
User since
2007-11-29
7 Artikel
BenutzerIn
[default_avatar]
oh, sorry... ursprünglich hatte ich natürlich das so:

Code: (dl )
1
2
3
4
use FindBin;

mkdir("C:/ordner_vom_perlskript");
system($FindBin::Bin."/bat.bat");



und die *.bat

mkdir C:\ordner_der_bat-Datei
musambani
 2007-11-29 13:43
#103261 #103261
User since
2007-11-29
7 Artikel
BenutzerIn
[default_avatar]
unglaublich!!
ich weiß zwar nicht, warum, aber das Problem lässt sich lösen:
habe an Stelle von system einfach qx genommen....
Hat jemand eine Ahnung, warum das jetzt tut?
Vielen Dank jedenfalls! :)

Bis denn!
renee
 2007-11-29 13:57
#103263 #103263
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Also bei mir funktioniert auch folgendes:

Code (perl): (dl )
1
2
3
4
5
6
#!/usr/bin/perl

use strict;
use warnings;

system( "test.bat" );


Code: (dl )
1
2
@ECHO OFF
mkdir "testdir_von_bat"
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
musambani
 2007-11-29 14:15
#103266 #103266
User since
2007-11-29
7 Artikel
BenutzerIn
[default_avatar]
ja gut, daß es bei dir funktioniert, is was anderes....
das, was Du vorschlägst, hatte ich auch schon probiert. Dachte nur, die Lösung mit FindBin wäre die ordentlichste.

Danke trotzdem!
renee
 2007-11-29 14:33
#103268 #103268
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Auch mit FindBin funktioniert es bei mir... komisch.

Welche Perl-Version? Welches OS?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
musambani
 2007-11-30 14:03
#103303 #103303
User since
2007-11-29
7 Artikel
BenutzerIn
[default_avatar]
ja, bei mir gehts ja auch. Also es geht, wenn ich es direkt starte. Aber es geht eben nicht, wenn es von Tosca gestartet wird. Deswegen ist es für Dich auch nicht nachzuvollziehen, wann es geht und wann nicht, weil Du eben Tosca nicht hast...

Dankeschön jedenfalls...
bis denn!
Siechfred
 2007-11-30 14:13
#103304 #103304
User since
2007-11-12
30 Artikel
BenutzerIn
[default_avatar]
Dann erleuchte uns, indem Du sagst, was in Deinem Fall „Tosca“ ist.

Siechfred

Btw, wusste gar nicht, dass Puccini ein Perl-Programmierer war ;)
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2007-11-29 13:18.