bat 批命令剪切1个月前的iis日志到备份文件夹中

2/22/2017来源:ASP.NET技巧人气:1828

@ram 截取当前日期(2017-02-16)字符串前10个字符并将-或/替换成空字符(过滤),最终字符结果 20170216 set myd=%date:~,10% set myd=%myd:-=% set myd=%myd:/=% @ram 截取日期字符串 获取年 月 日字符 set y=%myd:~0,4% set m=%myd:~4,2% set d=%myd:~6,2% @ram 过滤文件名 当前月 u_ex1702 set filterFileName0=u_ex%y:~2,2%%m% @ram 设置月份为上个月 set /a m-=1 @ram 如果月份小于,年份减1,月份+12得到去年的 年份和月份 if %m% lss 1 set /a m+=12&set /a y-=1 @ram 月份前添加前缀字符 0 if %m% lss 10 set m=0%m% @ram 过滤文件名 上个月 u_ex1701 set filterFileName1=u_ex%y:~2,2%%m% @ram 设置备份日志文件夹路径 set backuPath=D:\iisLogBackUp @ram 遍历C:\inetpub\logs\LogFiles\W3SVC2目录下文件名规则为 u_ex打头的文件,如果文件名不包含 u_ex1702 或 u_ex1701 则将该文件剪切移至备份日志文件夹中 for %%i in (C:\inetpub\logs\LogFiles\W3SVC2\u_ex*) do ( echo %%i|find /i "%filterFileName0%" >nul && echo 1 || echo %%i|find /i "%filterFileName1%" >nul && echo 1 || move /-y "%%i"  %backuPath% )