Thread Filelist: Dateien öffnen
(39 answers)
Opened by INIING at 2012-07-05 14:14
Ich habe nun einige Zeit damit verbracht zu erraten, was du meinen könntest. Mit den Informationen, die du nach und nach weiter gegeben hast, konnte ich ein paar Vermutungen aufstellen.
Daraus lässt sich folgern:
Ich werde das Script von mir aus msg #159479 heran ziehen. Dort steht: Das ließt aber nur einen Parameter ein. Du willst, wie es scheint mehrere Parameter übergeben. -i scheint dabei die einzige Option zu sein. Man kann Getopt::Long sagen, dass eine Option mehrfach verwendet werden kann: Code (perl): (dl
)
1 2 3 4 5 6 my @infiles; #... # Uebergabeparameter einlesen GetOptions ('i=s' , \@infiles); Damit kann man nun schreiben: ueberarbeitetesperlskript.pl -i file1.datafield -i file2.datafield -i fil3.datafield -i file4.datafield Du hast aber etwas anderes da stehen. Die Parameterübergabe muss also etwas anders aussehen. Die Werte, die in der Kommandozeile stehen, werden bei Perl im Array @ARGV gespeichert. Getopt::Long greift darauf zu und nimmt die Sachen heraus die es erkennt. Hier bedeutet es, dass die restlichen Pfade noch in @ARGV stehen, nachdem Getopt::Long die Option 'i' entfernt hat. Man kann nun schreiben: Code (perl): (dl
)
push(@infiles,@ARGV); Damit sind alle restlichen Pfade in @infiles Also der Anfang des Scripts vollständig: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 #!/usr/bin/perl use strict; use warnings; use Getopt::Long; # Parameteruebergabe my @infiles; my $outfile='C:\Complete_List.datafield'; # Uebergabeparameter einlesen GetOptions ('i=s' , \@infiles); push(@infiles,@ARGV); print "$_\n" for(@infiles); Hättest du all das was ich habe folgern müssen gleich von Anfang an gesagt, so hätten wir alle viel Zeit gespart. EDIT: Eine Zeile im Code vergessen. Last edited: 2012-07-06 14:12:50 +0200 (CEST) |