Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows教程綜合 >> 關於windows >> Windows Server自動備份數據批處理

Windows Server自動備份數據批處理

日期:2017/2/7 14:19:17      編輯:關於windows
 

在運維中,我們經常遇到需要將某些特定數據定時自動備份到遠程主機的情況,並且實現自動刪除一定時間之前的數據,將如下的內容保存為批處理並使用windows計劃任務可以很好的實現:

####################################

::設置備份保留天數

set k=3
::判斷操作系統類型
ver | find /i "5.0." >nul && goto 2000
ver | find /i "5.1." >nul && goto xp
ver | find /i "5.2." >nul && goto xp
ver | find /i "6.1." >nul && goto xp

::根據系統類型取當前年、月、日
:2000
set dn=%date:~4,4%
set dy=%date:~9,2%
set dr=%date:~12,2%
goto jc

:xp
set dn=%date:~0,4%
set dy=%date:~5,2%
set dr=%date:~8,2%
goto jc

::檢查是否閏年
:jc
set /a dns=%dn%/400*400
if %dns% EQU %dn% goto runnian
goto jc1

:jc1
set /a dns=%dn%/4*4
if %dns% EQU %dn% goto jc2
goto pingnian

:jc2
set /a dns=%dn%/100*100
if %dns% EQU %dn% goto pingnian
goto runnian

::如果是平年,對8,9兩月做特殊處理
:pingnian
if %dy%==08 goto pdy8
if %dy%==09 goto pdy9
goto pnqt

::如果是8月,開始計算k天前日期,判斷k天前是否為上月,對8,9兩日做特殊處理
:pdy8
if %dr%==08 goto dr8
if %dr%==09 goto dr9
set /a dr=%dr%-%k%
set dd=%dr:~0,1%
set /a dys=8-1
if %dys% LSS 10 set dys=0%dys%
if %dd%==- goto pnjc
if %dd%==0 goto pnjc
goto beforek

::如果是9月,開始計算k天前日期,判斷k天前是否為上月,對8,9兩日做特殊處理
:pdy9
if %dr%==08 goto dr8
if %dr%==09 goto dr9
set /a dr=%dr%-%k%
set dd=%dr:~0,1%
set /a dys=9-1
if %dys% LSS 10 set dys=0%dys%
if %dd%==- goto pnjc
if %dd%==0 goto pnjc
goto beforek

::如果是其他月份,開始計算k天前日期,判斷k天前是否為上月,對8,9兩日做特殊處理
:pnqt
if %dr%==08 goto dr8
if %dr%==09 goto dr9
set /a dr=%dr%-%k%
set dd=%dr:~0,1%
set /a dys=%dy%-1
if %dys% LSS 10 set dys=0%dys%
if %dd%==- goto pnjc
if %dd%==0 goto pnjc
goto beforek

::如果是閏年,對8,9兩月做特殊處理
:runnian
if %dy%==08 goto rdy8
if %dy%==09 goto rdy9
goto rnqt

::如果是8月,開始計算k天前日期,判斷k天前是否為上月,對8,9兩日做特殊處理
:rdy8
if %dr%==08 goto dr8
if %dr%==09 goto dr9
set /a dr=%dr%-%k%
set dd=%dr:~0,1%
set /a dys=8-1
if %dys% LSS 10 set dys=0%dys%
if %dd%==- goto rnjc
if %dd%==0 goto rnjc
goto beforek

::如果是9月,開始計算k天前日期,判斷k天前是否為上月,對8,9兩日做特殊處理
:rdy9
if %dr%==08 goto dr8
if %dr%==09 goto dr9
set /a dr=%dr%-%k%
set dd=%dr:~0,1%
set /a dys=%dy%-1
if %dys% LSS 10 set dys=0%dys%
if %dd%==- goto rnjc
if %dd%==0 goto rnjc
goto beforek

Copyright © Windows教程網 All Rights Reserved