Guten Morgen Experten,
ich hab da ein kleines Problem mit einem Programm, das von einem Batch aufgerufen wird, das vom Scheduler aufgerufen wird. Klingt kompliziert? Die Idee ist, dass automatisch 1mal täglich (vorhandene) Daten auf einen FTP-Server geladen werden. Dazu benutz ich den NcFTP Kommandozeilenclient (http://www.ncftp.com/ncftp/).
Das sieht dann etwa wie folgt aus:
@echo off
REM -- uploadskript.bat
REM -- Eigentlich werden hier noch ein halbes Dutzend Variablen angelegt, s.u.
REM -- Erzeuge eine Spooljob-Datei für NcFTP-Batch
echo hostname=ftp.meinserver.de \>\> %SPOOLFILE%
echo user=otto \>\> %SPOOLFILE%
echo pass=ottotto \>\> %SPOOLFILE%
echo op=put \>\> %SPOOLFILE%
echo local-file=%DATA% \>\> %SPOOLFILE%
REM usw., alle Optionen für einen Spooljob halt
REM -- Führe den Job aus
ncftpbatch -D
Das funktioniert soweit ganz wunderbar, wenn ich das händisch (also auf der „Windows-Shell“) ausführe.
Wenn ich jedoch genau dieses Skript in at einfüge, etwa so:
at 20:00 /every:Mo,Di,Mi,Do,Fr,Sa,So C:\uploadskript.bat
dann wird alles korrekt ausgeführt bis auf den eigentlichen ncftpbatch-Aufruf! Normalerweise taucht beim Aufruf ein kleines GUI-Fenster auf mit Meldungen wie „Uploading… succeeded“, beim Scheduler blitzt es allerdings nur sehr sehr kurz auf. Es wird nichts hochgeladen und es wird auch keine Logfile erstellt (die im Normalfall auch dann erstellt wird, wenn keine Jobs gefunden wurden). Es wirkt, als würd das Programm gestartet und in der gleichen Hundertstelsekunde gekillt.
Das schreit natürlich nach Pfadfehlern… allerdings habe ich keine gefunden. Einschalten von @echo on zeigt, dass alle Pfade stimmen und die ncftpbatch korrekt aufgerufen wird.
Starten des ncftpbatch mit „start /wait“ oder „cmd /c“ bringt auch nicht den gewünschten Erfolg.
Hab jetzt schon 5-6 Stunden allein damit verbracht und bin nahe der Verzweiflung. Bin dementsprechend für abstruseste Vorschläge offen. :-/
Vielen Dank im Voraus,
kvida