windows备份脚本


echo off

rem ###############################################

set sdir=d:\GameServer\LOG\
set ddir=\\192.168.0.152\Backupdisk\
set thisip=2-5-01
set grounp=1

rem grounp  1=log,log2  2=log3,log4,log5

rem ###############################################

pushd %sdir%
set thisdate=%date:~10,4%%date:~4,2%%date:~7,2%

echo wscript.echo dateadd("d",-1,date) > tmp.vbs
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo tmp.vbs') do (
set m=%%i
set d=%%j
set y=%%k
)

if %m% lss 10 set m=0%m%
if %d% lss 10 set m=0%d%
set nowdate=%y%-%m%-%d%
set madate=%m%/%d%/%y%
rem del tmp.vbs /Q

set dateEnd=%2

if "%dateEnd%" == "" set dateEnd=%date:~4,2%/%date:~7,2%/%date:~10,4%
set strFileType=%3
if "%strFileType%" == "" set strFileType=trade*.*


for /f %%a in ('dir /B "log?"') do md %%a_%nowdate%

if %grounp% equ 1 goto grounp1
:gounnp2
for /r log3 %%g in (%strFileType%) do (if %%~tg gtr %madate% if %%~tg lss %dateEnd% copy %%g
%sdir%log3_%nowdate% /Y
if exist %sdir%log3_%nowdate%/%%~ng%%~xg del %%g /Q
)
for /r log4 %%g in (%strFileType%) do (if %%~tg gtr %madate% if %%~tg lss %dateEnd% copy %%g
%sdir%log4_%nowdate% /Y
if exist %sdir%log4_%nowdate%/%%~ng%%~xg del %%g /Q
)
for /r log5 %%g in (%strFileType%) do (if %%~tg gtr %madate% if %%~tg lss %dateEnd% copy %%g
%sdir%log5_%nowdate% /Y
if exist %sdir%log5_%nowdate%/%%~ng%%~xg del %%g /Q
)
goto copynet


:grounp1
for /r log1 %%g in (%strFileType%) do (if %%~tg gtr %madate% if %%~tg lss %dateEnd% copy %%g %sdir%log1_%nowdate% /Y
if exist %sdir%log1_%nowdate%/%%~ng%%~xg del %%g /Q
)

for /r log2 %%g in (%strFileType%) do (if %%~tg gtr %madate% if %%~tg lss %dateEnd% copy %%g %sdir%log2_%nowdate% /Y
if exist %sdir%log2_%nowdate%/%%~ng%%~xg del %%g /Q
)


goto copynet

:copynet
for /f %%h in ('dir /B "log?_%nowdate%"') do xcopy %%h %ddir%%thisip%\%%h\ /S /E /y /I
if errorlevel 1 goto exit
if errorlevel 2 goto exit
if errorlevel 3 goto exit
if errorlevel 4 goto exit
if errorlevel 5 goto exit
for /f %%z in ('dir /B "log?_%nowdate%"') do rd /S /Q %%z
del tmp.vbs /Q
exit

:exit
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo copy file failed,now exit.
exit