Batch file 使用参数调用另一个.bat中的.bat文件

Batch file 使用参数调用另一个.bat中的.bat文件,batch-file,ftp,cmd,7zip,Batch File,Ftp,Cmd,7zip,我需要上传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 我不知道备份后我将拥有多少.zip文件,以及如何在FTP上上载所有文件(如何在main.bat中调用该文件),或者如何一次上载所有文件。在第一个文件中添加第三行:

我需要上传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

我不知道备份后我将拥有多少.zip文件,以及如何在FTP上上载所有文件(如何在main.bat中调用该文件),或者如何一次上载所有文件。

在第一个文件中添加第三行:

cmd /c <your-ftp-script>.bat <zip-file-name>
cmd/c.bat
至于遍历zip文件列表,请按照手册中的说明执行(cmd/?):

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

遍历以[drive:]路径为根的目录树,执行FOR 树的每个目录中的语句。如果没有目录 在/R之后指定规范,则当前目录为 假定的。如果集合只是一个单周期(.)字符,那么它 将只枚举目录树


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

您可以循环文件夹中的所有.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}
)
@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}
)