2013-01-16 110 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文件。

相關問題