2014-05-21 41 views
0

我有6個文件夾與數據庫備份文件命名爲COMPANY _Backup_ DATE .rar。我想將每個最後的文件複製到一個文件夾中,然後壓縮並複製到我的電腦。CMD複製上次創建的項目

SET FECHA=%date:~6,4%%date:~3,2%%date:~0,2% 
rem Company1 
XCOPY D:\BackupBBDD\COMPANY1\COMPANY1_backup_*.bak D:\BackupBBDD\CopiasBBDD\ /d /s 
... 
rem Company6 
XCOPY D:\BackupBBDD\COMPANY6\COMPANY6_backup_*.bak D:\BackupBBDD\CopiasBBDD\ /d /s 

rem rar and delete the folder 
rar a -m5 -df -y Backup_RAR_%FECHA%.rar CopiasBBDD 

rem copy to my pc 
copy D:\BackupBBDD\Backup_RAR_%FECHA%.rar \\tsclient\D 

每次我執行此批處理都會複製每個文件夾的所有文件。備份文件每週創建一次,文件夾「CopiasBBDD」創建該腳本的開始並在最後刪除。

回答

0

最後我創建了一個代碼來回答我的問題。

SET FECHA=%date:~6,4%%date:~3,2%%date:~0,2% 
SET DESTDIR=D:\BackupBBDD\CopiasBBDD\ 

@rem verify folders and copy last file. 

@echo off 
setlocal 
set srcDir=D:\BackupBBDD\COMPANY1 
set lastmod= 
pushd "%srcDir%" 
for /f "tokens=*" %%a in ('dir /b /od 2^>NUL') do set lastmod=%%a 
if "%lastmod%"=="" echo Could not locate files.&goto :eof 
xcopy "%lastmod%" "%DESTDIR%" 

... 

set srcDir=D:\BackupBBDD\COMPANY6 
set lastmod= 
pushd "%srcDir%" 
for /f "tokens=*" %%a in ('dir /b /od 2^>NUL') do set lastmod=%%a 
if "%lastmod%"=="" echo Could not locate files.&goto :eof 
xcopy "%lastmod%" "%DESTDIR%" 

rem RAR and copy 

rar a -m5 -df -y Backup_RAR_%FECHA%.rar CopiasBBDD 
xcopy D:\BackupBBDD\Backup_RAR_%FECHA%.rar \\tsclient\D