::設(shè)定要備份的文件所在目錄
set 備份目錄=D:\Web\webdisk\USER\justway\佳為企管系列__商品流通 (商場(chǎng),超市,百貨,批發(fā)商貿(mào),電器,家居,加工)
::首次運(yùn)行檢測(cè)
echo.%date% %time% 啟動(dòng),正在檢測(cè)…..>>%~dp0sendmail.log
if not exist “%~dp0Files.lst” goto :firstrun
::轉(zhuǎn)入上面定義的備份目錄.
pushd “%備份目錄%”
::檢測(cè)文件是否有更新
for %%i in (*.*) do call :check “%%i”
::重新創(chuàng)建文件信息列表files.lst(用于對(duì)比)
del “%~dp0files.lst”
for %%i in (*.*) do echo.%%i,%%~zi,%%~ti>>“%~dp0Files.lst”
popd
echo.%date% %time% 檢測(cè)完成…..>>%~dp0sendmail.log
goto :eof
:check
Set send=
::根據(jù)上次備份時(shí)保存的文件列表對(duì)比文件的,時(shí)間,大小.如果不一樣就通過(guò)sendmail.vbs命令行把文件上傳到郵箱中備份.
:: 如果文件沒(méi)有在列表中說(shuō)明是新的文件.
find /i %1 “%~dp0files.lst” || Set send=新的文件
if not defined send for /f “usebackq skip=2 tokens=1,2,3 delims=,” %%i in (`find /i %1 “%~dp0files.lst”`) do (
if “%%~i”==“%~1″ (
if not “%%j”==“%~z1″ set send=文件大小發(fā)生改變.
if not “%%k”==“%~t1″ set send=文件日期發(fā)生改變.
)
)
:: 記錄日記.
if defined send echo.check,%~1,%send% >>%~dp0sendmail.log
:: 如果有設(shè)定了send變量說(shuō)明文件是要上傳的,就調(diào)用程序發(fā)送文件
if defined send cscript /nologo “%~dp0sendmail.vbs” “%~f1″“%1″>>%~dp0sendmail.log
::%~f1 前面?zhèn)魅胛募耐耆窂? %1 ,傳入的文件參數(shù).
goto :eof
:firstrun
pushd “%備份目錄%”
for %%i in (*.*) do echo.%%i,%%~zi,%%~ti>>“%~dp0Files.lst”
for %%i in (*.*) do cscript /nologo “%~dp0sendmail.vbs” “%%~fi”“%%~ni”>>%~dp0sendmail.log
popd
goto :eof
rem 附:每天定時(shí)自動(dòng)執(zhí)行的命令.使用管理員的權(quán)限執(zhí)行就可以了.
:: at 時(shí)間 /every:M,T,W,Th,F,S,Su “執(zhí)行文件路徑”
::例子,在每天的2點(diǎn)備份,本文件放在E:\TEST\autobackup.cmd
::
:: at 02:00 /every:M,T,W,Th,F,S,Su “E:\TEST\autobackup.cmd”
PS:因?yàn)槲倚枰蟼鞯奈募荚?0MB以內(nèi),而大多郵箱的附件在15-50MB左右.我使用的是QQ郵箱有50MB有附件大小.由且郵箱容量是無(wú)限的,所以就用來(lái)備份文件了.呵呵,利用一下.