Zum Inhalt springen

probleme mit perl-script


Empfohlene Beiträge

Geschrieben

Ich habe mal wieder ein Problem.

Ich habe hier ein perl-script, dass mir von einem ftp-server eine exe-Datei holen soll, was auch soweit super funktioniert.

Das Verzeichnis, in das die Datei gespeichert wird, ist über Samba freigegeben, was soweit auch funktioniert.

Nun das problem:

Wenn ich die Datei ausführen will geht nur eine MSDOS-Konsole auf und das wars.

Lade ich die Datei hingegen von Hand runter und schiebe sie dann in das Samba-Verzeichnis funktioniert das Ausführen einwandfrei und der erwartete Installer geht auf.

Dabei ist mir aufgefallen, dass die manuell heruntergeladene Datei und die Datei, die das script geladen hat, eine unterschiedliche Größe aufweisen. Der Unterschied ist rund 200Byte. Außerdem fehlt bei der Datei vom Script das Icon der Exe-Datei.

Wo dieser Unterschied herkommt ist mir zur Zeit noch ein Rätsel. Hier sind mal die relvanten Teile des perl-scripts:


.....

#Verbindung zum FTP-Server aufbauen.
$ftp = Net::FTP->new($ftpsrv) or &error("Could not connect to $ftpsrv\n");

$ftp->login($ftpusr, $ftppswd) or &error("Login data invalid\n");

$ftp->cwd($ftpsubdir) or &error("Could not find $ftpsubdir on $ftpsrv\n");

@dirlist = $ftp->ls($ftp->pwd);

$filename = "none";
foreach $file (@dirlist) {
#excepting the filename out of the listing
$file =~ /^(.*)(\/|\\)(.*)$/;
$tempname = $3;

if ($tempname =~ /$regex/i) {
$filename = $tempname;
break;
}
}

if ($filename eq "none") {$ftp->quit; &error("There was no file that matches the given regular expression.\n");}

##Die passende Datei auf dem Server ist gefunden. Wenn nun eine lokale Datei existier, dann muss ?berpr?ft werden, ob
##ein update ?berhaupt notwendig ist.
if ($ftp->mdtm($filename) < $lcdate) {
#No update is needed;
print "No Update needed\n";
exit(0);
}

print "Getting File....Be patient, please.\nIf it tooks too long to get the
data, you have to invest in your Internet Connection \n";
if (!$ftp->get($filename, ($destdir."/".$filename."_parted"))) {
$ftp->quit;
&error("Filetransfer failed!\n");
}

$ftp->quit;

rename (($destdir."/".$filename."_parted"), ($destdir."/".$filename));

.....
[/PHP]

P.S: ich weiß selber, dass das perl-script nicht gehen würde, wenn ich, wie man es sollte, "use strict;" am anfang hinklatschen würde, aber ich bin ja auch noch kein perl-freak und daher seh ich das persönlich noch nicht so "strict" :D

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...