![使用批处理文件将文件移动到 FTP 并删除源文件](https://linux22.com/image/1592704/%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%B0%86%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0%20FTP%20%E5%B9%B6%E5%88%A0%E9%99%A4%E6%BA%90%E6%96%87%E4%BB%B6.png)
我需要创建批处理脚本,用于将文件从 PC 复制到 FTP 服务器。复制后 - 从源中删除所有文件。并在目标目录中覆盖所有现有文件。
我找到了很多解决方案,但不确定哪一个最适合我。例如XCOPY
,或使用诸如、、、 、ROBOCOPY
等命令的经典方法...ftp
cd
copy
mget
ROBOCOPY
似乎是最好的选择,但我认为它不支持 FTP。XCOPY
是较旧的方法,...
毕竟这将是定期安排的任务......
谢谢你的建议。
答案1
robocopy
并且xcopy
仅处理本地文件。
使用ftp
,您可以使用本地命令上传然后删除源文件del
。
ftp -s:upload.txt
del *.*
但是,只有真正成功上传的文件才会被删除,这种方式很难实现。上面的批处理文件将删除所有文件,无论其中一些文件是否上传失败,或者其中一些文件是在 和 之间创建ftp
的del
。
但大多数第三方 FTP 命令行客户端都可以轻松做到这一点。例如,WinSCP FTP 客户端,您可以简单地使用以下批处理文件(使用put
命令使用-delete
开关):
winscp.com /ini=nul /log=upload.log /command ^
"open ftp://username:[email protected]/" ^
"put -delete C:\local\source\path\* /remote/target/path/" ^
"exit"
关于时间安排:参见WinSCP 指南:安排传输到 FTP 服务器。
(我是 WinSCP 的作者)