Script que utilizei para compactar os arquivos de backup do MSSQL server.
@ECHO OFF
SET ORIGEM=D:SQL
SET DESTINO=D:SQL-BKP
SET DIRSCRIPT=D:SQLlista.txt
SET COMPACTADOR="C:Program Files7-Zip7z"
dir /B %ORIGEM% | findstr /R /C:".bak" > %DIRSCRIPT%
::LIMPA OS LOGS
DEL COPIADO.LOG /Q
DEL FALHA.LOG /Q
for /F "tokens=*" %%A IN (lista.txt) DO CALL :COPIA %%A
GOTO :EOF
:COPIA
echo Verificando %1 ...
IF EXIST %ORIGEM%%1 (
:: se existe copia e grava no log copiado
:: copy %ORIGEM%%1 %DESTINO% /Y
echo %1 >> copiado.log
%COMPACTADOR% a -tzip -mx=9 %DESTINO%""%1.zip %ORIGEM%""%1
del %ORIGEM%""%1
::pause
:: VAI PARA O PROXIMO ARQUIVO
GOTO :EOF
)
:: se não existe apenas grava no log falha
echo %1 >> falha.log