通过批处理脚本压缩和FTP文件

我正在尝试在一个batch file中ZIP和FTP文件。 Zip部分工作,但FTP应用程序读取整个批处理脚本,而不是FTP命令下面的行,导致错误

如果这些文件不是按顺序读取的,我如何在同一个batch file中使用Zip和FTP?

@echo off :: zip the file(s) 7z a -tzip c:\test.zip c:\unst.log :: ftp the files C:\WINDOWS\system32\ftp.exe -s:%0 open 10.1.7.10 myusername mypassword binary put c:\test.zip quit pause ::exit 

我不知道%0是如何工作的,但是按照下面的方式工作对我来说很好:

 @echo off C:\WINDOWS\system32\ftp.exe -s:ftp_data.txt pause 

其中ftp_data.txt具有以下内容:

 open 10.0.0.2 username password binary put the_file_i_want_to_upload.txt quit 

是否有要求将它们全部保存在一个文件中? 因为你正在做的是告诉它parsing自己的命令饲料到FTP,哪(显然)不会工作。

最简单(和正常)的方法是使用一个单独的文件ftp_script.txt ,它具有FTP命令。

首先,在所有的情况下,你的脚本是做你想做的吗? exception?

我发现它会覆盖目标文件,如果它存在…太糟糕了,如果它们是重要的文件

如果transmision失败…没有日志! (对于生产环境很重要,如果你必须search日志的月份)

虽然乍一看,使用Microsoft的FTP客户端可能会很有趣, 如果您认为该项目将持续一周以上,我认为您应该考虑使用function更强大的FTP / SFTP客户端。

能够获取日志的客户端,能够避免覆盖文件(如果存在的话)(以及您希望的),这些文件可以与其他脚本(例如PowerShell或Wscript)集成。

其中有很多,但一个相当有用的是WinScp 。 这将改善我们现在的工作,并在未来,因为它是一个非常好的应用程序。