我正在尝试在一个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 。 这将改善我们现在的工作,并在未来,因为它是一个非常好的应用程序。