我需要将zip文件上传到FTP服务器。
我的第一个文件如下:
sqlcmd -S .\SQLEXPRESS -U <user> -P <pass> -i c:\sql_script.sql
7za a -tzip %~dp0\Archive\Backup_daily_full.zip *.bak -v100m
为了上传单个文件我创建了这个:
@echo off
echo user {user}> ftpcmd.dat
echo {pass}>> ftpcmd.dat
echo put %1>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat {server}
我不知道备份后我将拥有多少个.zip文件以及如何在FTP上上传所有这些文件(如何在主.bat中调用该文件)或者如何一次性上传所有文件。< / p>
答案 0 :(得分:0)
在第一个文件中添加第三行:
cmd /c <your-ftp-script>.bat <zip-file-name>
至于遍历zip文件列表,请按手册说(cmd /?):
FOR / R [[drive:] path]%变量IN(设置)DO命令[command-parameters]
使用以[drive:]路径为根的目录树,执行FOR 树的每个目录中的语句。如果没有目录 在/ R之后指定规范,然后是当前目录 假定。如果set只是一个句点(。)字符,那么它 将枚举目录树。
因此,将您的压缩备份文件存储在干净的位置,然后使用for /r
浏览列表,循环调用第二个bat文件。
答案 1 :(得分:0)
您可以遍历文件夹中的所有.zip文件,并为每个文件运行ftp脚本。
@echo off
for /r %~dp0\Archive %%a in (*.zip) do (
echo user {user}> ftpcmd.dat
echo {pass}>> ftpcmd.dat
echo put %%a>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat {server}
)