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

Argumente werden per Task Sheduler nicht übergeben

Leser: 1


<< >> 6 Einträge, 1 Seite
tophoven
 2005-12-28 13:39
#11724 #11724
User since
2005-12-02
28 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe einige Perl Scripte geschrieben, welche ich auf einem Windows 2003 mittels Task Sheduler ausgeführt werden sollen.

Bei der Definitionsteht in der Run Zeile: progname arg1 arg2 .

Leider werden die Argumente welche ich übergeben will nicht geliefert. Starte ich das ganze als Batch Script (*.cmd) klappt aber die Übergabe von Argumenten.
Rufe ich das Programm so wie es in der Zeile Run definiert ist am DOS Prompt auf, klappt alles.

Hat von Euch noch einer eine Idee, was hier falsch ist?

In der Variablen $0 steht in beiden Fällen nur der Programname.

Bsten Dank für Eure Hilfe

Gruß

Franz-Josef
ptk
 2005-12-28 14:14
#11725 #11725
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Guckst du in @ARGV nach?
tophoven
 2005-12-28 14:34
#11726 #11726
User since
2005-12-02
28 Artikel
BenutzerIn
[default_avatar]
Hallo,

anbei der Codeschnipsel:
------------------------------------------------------------
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/local/bin/perl

use strict;

my $IniFile = $ARGV[0];

print "-------------------------------- \n";
print "Argumente >@ARGV< \n";
print "Programm $0 \n";
print "IniFile = $IniFile \n";
print "-------------------------------- \n";

------------------------------------------------------------


Gruß

Franz-Josef

edit Renee: [code]-Tags spendiert\n\n

<!--EDIT|renee|1135775466-->
pKai
 2005-12-28 15:02
#11727 #11727
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Gelegentlich gibt es das Phänomen, dass
Code: (dl )
>script.pl arg1 arg2
die Argument "nicht sieht". (Selbst mal auf einer NT4-Maschine erlebt, gelesen hab ich davon, dass es auch unter neueren Win-Versionen schonmal aufgetreten ist).
Die Genaue Ursache hab ich bisher nicht berichtet gesehen.
Was in den Fällen aber noch ging war
Code: (dl )
>perl script.pl arg1 arg1

Als Schuss ins Blaue, könntest du mal versuchen, ob das bei dir als tasksched-Kommando einen Unterschied macht.
I sense a soul in search of answers.
steffenw
 2005-12-29 00:09
#11728 #11728
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Unter Windows ist es recht angenehm
pl2bat perlscript.pl
aufzurufen.
Danach gibt es eine perlscript.bat
Das Script ist dann Batchdateikompatibel.
Aufgerufen wird es dann einfach mit
perlscript.bat Arg1 "Arg 2" Arg3
und nicht mehr
perl perlscript.pl Arg1 "Arg 2" Arg3
.

Das Wichtigste habe ich doch vergessen.

pl2bat und das übersetzte Script machen dann eine ganze Menge um zu den verschiedenen Windowssystemen bei der Parametrierung kompatiblel zu sein. Da kann man sich auf jeden Fall etwas abschauen oder es einfach so machen, wie ich es beschrieben habe. Es ist ganz nett. Manchmal sieht man da keine Fehlermeldungen beim testen, weil das Script gleich endet und das Fenster zu geht. Dann sollte das Ende der Datei so aussehen:

_ _ E N D _ _ (mußte ich gesperrt schreiben, sonst wird's hier verschluckt)
:script_failed_so_exit_with_non_zero_val
:endofperl
pause\n\n

<!--EDIT|steffenw|1135808210-->
$SIG{USER} = sub {love 'Perl' or die};
tophoven
 2005-12-29 09:10
#11729 #11729
User since
2005-12-02
28 Artikel
BenutzerIn
[default_avatar]
[quote=pKai,28.12.2005, 14:02]Als Schuss ins Blaue, könntest du mal versuchen, ob das bei dir als tasksched-Kommando einen Unterschied macht.[/quote]
der Schuß ins Blaue hat aber geklappt. Ich habe den Aufruf in
perl test.pl arg1 arg2
verändert und schon läuft es

Besten Dank

Gruß

Franz-Josef
<< >> 6 Einträge, 1 Seite



View all threads created 2005-12-28 13:39.