自動建立計劃任務之刪除7天之前的備份文件批處理

因爲個人公司遊戲(露娜luna)服務器太多,以前創建的每日備份日誌文件日積月累會
很大。
並且不須要保留那麼多,按公司要求只須要保留一個星期的便可。
1.那麼有什麼方法自動刪除7天之前備份的*.log文件呢?
2.服務器過多,不可能一一手動建立,有沒有自動完成這個建立計劃任務的批處理呢?
首先要解決的是自動刪除7天之前備份的log文件,而後建立一個能夠自動建立一個每
周指定日期指定時間運行一次該自動刪除的批處理
 
一: 刪除7天之前備份的文件
命令
FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
 
方法1
描述:能夠刪除7天之前的後綴名爲log的日誌文件。現在天是6.29,那麼會刪除6.22
號之前建立的文件。不會刪除到回收站。
指定路徑爲要刪除的文件夾路徑,該批處理能夠放在任意文件夾下
forfiles /p D:\aizzw\LOG /m *.log -d -7 /c "cmd /c del /f @path"
參數解釋:
這裏的/p 指的是要刪除的備份文件路徑
        /m 指的是要匹配的字符, 通配符爲*號,後綴名能夠根據實際狀況修改
如zzw*.log;*.bak;*.txt
-d 指的是日期,「-d -7」指的是從但前日期當前日期往前減7天。
/c 指的是執行命令
@path 返回文件完整路徑
方法2
描述:能夠刪除7天之前的後綴名爲log的日誌文件。
不須要指定路徑,必須放在要刪除日誌的文件下。刪除當前文件夾下的匹配文件。
forfiles /m *.log -d -7 /c "cmd /c del /f @path"
以上批處理已經在windows 2003的虛擬機上測試經過
 
方法3:
爲網友提供,可適用於xp,2000,而forfiles默認只有2003以上的系統纔有。
 
::刪除F:\文件備份裏的 7天前的txt文件
::被刪除的文件日期以文件建立日期爲主
@echo off
::取7天以前的日期.
>deldata_zw.zhu.vbs echo wscript.echo dateadd("d",-7,date)
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata_zw.zhu.vbs') do (
set y=%%i
set m=%%j
set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set rq=%y%-%m%-%d%
echo 注意:即將刪除 %rq% 之前創建的文件
pause
::判斷文件
for /f "skip=4 delims=" %%i in ('dir/tc F:\TEST\*.log') do call :w "%%i"
del deldata_zw.zhu.vbs
goto :eof
:w
for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
set var=%1
set num=%var:~1,10%
if %num% lss %rq% del /q F:\TEST\%str%
 
 
二: 自動建立每週運行一次的計劃任務
建立計劃任務可用at,schtasks命令,schtasks提供了不少參數
命令schtasks
SCHTASKS /Create [/S system [/U username [/P [password]]]]
    [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
    [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
    [/RI interval] [ {/ET endtime | /DU duration} [/K] ]
    [/SD startdate] [/ED enddate] [/IT] [/Z] [/F]
方法
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:\aizzw\del-7.bat /sc
weekly /d mon /st 01:00
start %systemroot%\tasks
echo 建立成功,請檢查...
pause
del /f Create.bat
參數解釋:
schtasks /create 指的是建立計劃任務
/tn 指定計劃任務的名稱
/ru 指定運行該批處理的帳號,若是去掉該參數則默認爲當前帳戶運行,會提示輸入密碼。
一個計劃任務所用的帳號若是密碼變更後該批處理就再也不會運行成功
因此我這裏使用系統帳號system,密碼就省略不寫。
/rp   指定帳號的密碼
/tr 指定程序所在路徑,這裏爲指定要執行的批處理存放路徑。
/sc 爲指定運行的週期
/d 爲日期.這裏mon爲英文單詞縮寫,週一
/st 爲運行時間
start %systemroot%\tasks 這一句只是爲了彈出計劃任務窗口查看建立成功與否
del /f Create.bat 爲建立完成後自動刪除建立該計劃任務的批處理
schtasks命令詳細解釋能夠參見微軟的
http://technet.microsoft.com/zh-cn/cc772785(WS.10).aspx#BKMK_create
附件中有我實際操做的批處理供 下載
 
本文出自 「 aizzw的網絡世界」 博客,請務必保留此出處 http://aizzw.blog.51cto.com/440409/171183
相關文章
相關標籤/搜索