2013-01-16 68 views
0

我需要将zip文件上载到FTP服务器。使用参数调用另一个.bat中的.bat文件

我的第一个文件是这样的:

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文件中调用该文件)或如何一次简单地上传文件。

回答

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} 
) 
0

第三行添加到您的第一个文件:

cmd /c <your-ftp-script>.bat <zip-file-name> 

至于通过的zip文件列表遍历,请执行手动(CMD /?)说:

FOR/R [[drive:] path]%变量IN(设置)DO命令[命令参数]

以[drive:]路径为根目录树,在树的每个目录中执行FOR 语句。如果在/ R之后没有指定目录 规范,则假定当前目录为 。如果设置只是单个句点(。)字符,那么 只会枚举目录树。

因此,将您的压缩备份文件存储在干净的位置,然后使用for /r遍历列表,在循环中调用您的第二个bat文件。

相关问题