bmg4ever Geschrieben 5. Oktober 2005 Teilen Geschrieben 5. Oktober 2005 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" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 5. Oktober 2005 Teilen Geschrieben 5. Oktober 2005 Stell mal die Übertragungsart auf binär um, dann geht's. Das müsste mit $ftp->binary; gehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bmg4ever Geschrieben 5. Oktober 2005 Autor Teilen Geschrieben 5. Oktober 2005 THX oh man wie *autsch*. darüber macht man sich mit nem Webbrowser natürlich keine Gedanken. Man sollte wieder mehr mit Telnet arbeiten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 5. Oktober 2005 Teilen Geschrieben 5. Oktober 2005 Macht doch nix. Kann doch nicht immer alles wissen. Und übrigens: der Fehler passiert Dir sicherlich nie wieder Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.