I think you need to use an authorization technique with private/public keys. You can't just provide the password at the command line
I'm not sure how you call ftp from your batch, do you use some IO-redirection for this? Since you're using sftp, you can also try 'ssh', because ssh can be used to start a program at the other host. (defined at the commandline of 'ssh')
An other option that might be interesing is, looking for an way to mount the sftp location. Both 'sshfs', and 'lufs' could do this for you.
Then, you can just use it as a part of your file system hierarchy.