Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I want a windows scheduled task to execute an ftp batch file which will upload some files to my server. If i run the argument below from the command line then it executes successfully.

ftp -i -s:C:\<path-to-file>\ftp.dat

When i try and run this through a scheduled task it always gets to Created task Process and stays like this, it does not complete or fail. I have also tried this without the put commands and it still does it so its not as if it is waiting to transfer the files.

I am creating the task through the task scheduler GUI on vista. Under the general tab i have run whether user is logged on or not and run with highest privileges set.

Under actions it is set to run C:\Windows\System32\cmd.exe

And the argument is

ftp -i -s:C:\<path-to-file>\ftp.dat

The ftp.dat file looks like this:

open ftp.mysite.co.uk
myUsername
myPassword
put C:\<path-to-file>\file.xml
put C:\<path-to-file>\file2.xml
bye

I dont understand why this runs perfectly fine manually from the command line but not from the scheduled task

share|improve this question

3 Answers 3

My suggestion would be run a vbscript a scheduled task

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "C:\Windows\System32\ftp.exe -i -s:C:\\ftp.dat", , True

I've always had much more luck with scheduling vbscripts over trying to scheduled commands

share|improve this answer

It should work when you add "/c" as parameter for cmd.exe to run the ftp command:

C:\Windows\System32\cmd.exe
/c ftp -i -s:C:\<path-to-file>\ftp.dat

You can also try this 'whole' thing on the command line:

cmd /c ftp -i -s:C:\<path-to-file>\ftp.dat

Without "/c" it just opens a console within the console, note executing the command.

share|improve this answer
    
Is there a reason to launch cmd when you can just run ftp directly? –  James Snell Sep 23 at 8:40
    
I had issues with different commands running directly which could be averted running it through cmd. Not specifically with ftp (and didn't try it), however I assumed he had similar reasons for this and wanted to change as little as possible in my answer. –  Acrklor Sep 23 at 9:00

It sounds like there is still a permissions or file access issue as when not running with a UI some parts of the environment are not available. It is likely that a file or path is not available since we don't know where goes...

The best thing to do is to log the output from ftp to see if there are errors. It would be useful to have anyway to review if there are any future problems like this:

ftp -i -s:C:\<path-to-file>\ftp.dat >c:\ftp.log

You could put the log file in the but it won't provide a log if you can't access that folder for some reason, so until you've ruled that out you're best to keep it in the root. Once you've ruled out that problem then you can move it to a more appropriate location.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.