Command works from command line, but not from Task Scheduler
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 it's not as if it is waiting to transfer the files.
I am creating the task through the task scheduler GUI on Windows Vista. Under the general tab I have run whether the 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 don't understand why this runs perfectly fine manually from the command line, but not from the scheduled task.
Solution 1:
It should work when you add /c
as parameter for cmd.exe
to run the command (ftp
):
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.