博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

批处理之删除或备份指定天数之前的文件

Posted on 2015-10-13 10:35  徐正柱-  阅读(2865)  评论(2编辑  收藏  举报

 

forfiles /p "E:\erpweb\ssolog" /s /m *log /d -15 /c "cmd /c del @path"
示例:删除日志

 

e:
cd E:\Logfiles\W3SVC1
del /q /f *.log
删除IIS日志:

 

@echo off
echo 正在清理系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清理系统垃圾完成!
echo. & pause  
服务器垃圾清理

 

@echo ***************************************************************************************
@echo           删除指定天前的文件
@echo   1.设置需要删除文件所在的文件路径
@echo   2.设置需要删除多少天之前
@echo ***************************************************************************************
@echo off
set /p SrcDir="请输入需要删除的文件所在文件路径(如d:\test):"
set /p DaysAgo="请设置需要删除多少天之前(50):"

:start
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c  echo @path"

set /p noyes=请确认是否删除上述文件(n/y;n:否,y:是)
if /i "%noyes%"=="n" (echo 您输入是n, 已经取消删除!
) else ( 
 forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c  del /f /q /a @path" 
 echo ..............................删除文件完成................................
)

set /p goon=是否继续删除文件(n/y;n:否,y:是)
if /i "%goon%"=="n" (echo 您输入是n, 已经取消继续删除! 
) else (goto :start 
)

pause>nul
goto :eof
delfileforAgoDays.bat

 

@echo ***************************************************************************************
@echo           备份指定天前的文件
@echo   1.设置需要备份文件所在的文件路径
@echo   2.设置需要备份n天之前
@echo ***************************************************************************************
@echo off
set /p SrcDir="请输入需要备份的文件所在文件路径(如d:\test):"
set /p TargetDir="请输入文件备份存储的文件路径(如c:\test):"
set /p DaysAgo="请设置需要备份多少天之前(如:50):"

:start
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c  echo @path"

set /p noyes=请确认是否备份上述文件(n/y;n:否,y:是)
if /i "%noyes%"=="n" (echo 您输入是n, 已经取消备份!
) else ( 
 forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c  copy  @path  %TargetDir%" 
 echo ..............................备份文件完成................................
)

set /p goon=是否继续备份文件(n/y;n:否,y:是)
if /i "%goon%"=="n" (echo 您输入是n, 已经取消继续备份! 
) else (goto :start 
)

pause>nul
goto :eof
copyfileforAgoDays.bat