Is there a bit of software that can do all this (scheduled FTP/moving/archiving of files)

The various systems I am responsible for at work rely heavily on file interchange - orders coming in from customers; moving to an input queue on a different server; output files being sent via various methods to different external FTP sites, then archived, etc.

The solution we have at the moment is a big mess of task-scheduled batch files that run copy/move operations and scripted FTP transfers and so on. This more or less works, but has a number of serious flaws, mainly to do with flow control, for example:
In the case of send-then-archive operations, any file that arrives at the precise moment the ‘send’ part is already in progress, gets caught up in the ‘archive’ process, without ever having been sent.
Also with these operations, if the ‘send’ process fails (say because the destination is unreachable), the ‘archive’ operation still puts the files away without ever having sent them.

Also, there’s no logging or failure alerting, etc.

I need to remedy this. I know I could write a bunch of custom VBScript that would do it better than the existing batch files, but I’m wondering if that would actually be reinventing the wheel.

So, is there anything out there that can:
[ul]
[li]Copy/move files around between folders within a domain[/li][li]Send/collect files via FTP[/li][li]Handle multiple operations on the same file (e.g. send via FTP then on success, move to archive)[/li][li]Schedule many different sets of operations to happen at different time intervals[/li][li]Log details of what it’s doing[/li][li]Alert an administrator (e.g. by email) on failure[/li][/ul]