最近某个用到的第三方程序会产生很多日志文件在logs目录中,每天一个log文件,类似 2014-05-07001.log。日积月累这个目录文件数量非常多,手动清除还是比较麻烦的。

  由于这个软件不是自己开发的,无法改变log产生机制,于是想到找个BAT放到计划任务中定时删除这些文件。

  网上找到几个BAT都无法正确运行,估计是别人转载的时候也没真正使用过,于是我在别人代码的基础上略加修改现在可以正常运行了:

@echo off&setlocal enabledelayedexpansion
set ds=7
set di=d:\Soft\logs
set "dy=%date:~,4%"
set "dm=%date:~5,2%"
set "dd=%date:~8,2%"
echo 当前日期为:%dy%年%dm%月%dd%日
echo.
if %dm:~,1%==0 set "dm=%dm:~1%"
if %dd:~,1%==0 set "dd=%dd:~1%"
set/a "dd-=ds"
if !dd! gtr 0 goto ok
echo 正在计算%ds%天前的日期...
:ry
set /a "feb=^!(!dy!&3)+28"
if "%dy:~2,2%" equ "00" set/a "feb=feb-1+^!(dy:~,2&3)"
if %feb%==29 echo %dy%年是闰年
echo.
:tyt
set n=0
set/a "dm-=1"
if %dm% equ 0 (
set/a "dy-=1,dm=12,dd+=31"
if %dd% gtr 0 (goto ok )else goto ry )
for %%a in (31 %feb% 31 30 31 30 31 31 30 31 30 31) do (
set/a n+=1
if !n! equ %dm% set/a "dd+=%%a")
if %dd% leq 0 goto tyt
:ok
set/a "ymd=dy*10000+dm*100+dd"
echo.
echo 前%ds%天的日期是%ymd:~,4%年%ymd:~4,2%月%ymd:~6,2%日
echo 正在获取文件日期再进行比较
echo 并删除%ds%天前创建并且%ds%天内未修改过的文件...
cd/d "%di%"
for /f "delims=" %%i in ('dir/a/a-d/b')do ( Set "strymdx=%%~ti%"
Set "xdy=!strymdx:~,4!"
Set "xdm=!strymdx:~5,2!"
Set "xdd=!strymdx:~8,2!"
Set "ymdx=!xdy!!xdm!!xdd!" Rem set ymdx=!ymdx~,4!!ymdx~5,2!!ymdx~8,2!
echo %%i,ymd=%ymd%,ymdx=!ymdx!,ti=%%~ti
if !ymdx! lss %ymd% (
if "%%i" neq "%~nx0" del/f "%%i"))
echo.
echo 处理完毕!即将退出...
@pause

自动运行的时候请将最后一行的@pause 去掉,这样cmd窗口就可以自动关闭了

------------------------------------------------

从IE缓存目录中复制出来的文件名总是带有[1],要批量替换掉[1]可以用下面这个有趣的BAT

@echo off
title 清除缓存中复制出来的文件名中[]字符!
setlocal EnableDelayedExpansion
set wkdxz=[]
for /f "usebackq delims=/ tokens=1,2" %%b in ('%wkdxz%') do (
for %%a in (*) do (
set xz=%%a
if "%%c"=="" ren !xz! !xz:%%b=! >nul||ren !xz! "!xz:%%b=!(2)" >nul
ren !xz! !xz:%%b=%%c! >nul||ren !xz! "!xz:%%b=%%c!(2)" >nul
)
title 成功!
color 0a&cls&echo 重命名成功!
)
del %

替换文件名中的任意字符:

@echo off
title 请按提示输入字符!
setlocal EnableDelayedExpansion
echo.
echo 要把字符"a"替换成字符"b" 请输入a/b
echo.
set /p wkdxz= 要去掉字符a就直接输入a
for /f "usebackq delims=/ tokens=1,2" %%b in ('%wkdxz%') do (
for %%a in (*) do (
set xz=%%a
if "%%c"=="" ren !xz! !xz:%%b=! >nul||ren !xz! "!xz:%%b=!(2)" >nul
ren !xz! !xz:%%b=%%c! >nul||ren !xz! "!xz:%%b=%%c!(2)" >nul
)
title 成功!
color 0a&cls&echo 重命名成功!
)
ping /n 127.1>nul

添加WINDOWS定时重启任务的BAT

@echo off
echo ┌────────────────────────┐
echo │Windows服务器定时重启 │
echo └────────────────────────┘
echo 正在设置……
rem copy shutdown.exe %windir%\system32\shutdown.exe
at : /every:M %windir%\system32\shutdown.exe /r
echo 设置完成,请按任意键退出……
pause>nul

有趣的BAT的更多相关文章

  1. winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

    在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉.比如卸载.分享一个比较简单实现. 思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除 ...

  2. 各种有趣vbs,bat脚本

    短信轰炸.vbs Dim btn,ie Set ie = WScript.CreateObject("InternetExplorer.Application") ie.Visib ...

  3. BAT批处理(一)

    本文摘自博文<BAT批处理文件教程> 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如 ...

  4. 自己写的browse.bat与perl写的url_handler.pl的比较

    以前自己也写过Windows下自动打开多个浏览器测试某个URI,提高浏览器兼容性测试效率. 但是写的browse.bat文件还是最基础简陋的 @echo off if '%1'=='-c' ( sta ...

  5. 批处理最完整人性化教程(.bat文件语法)

    原文链接:http://www.cnitblog.com/seeyeah/archive/2009/01/15/53808.html 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字 ...

  6. 一辈子只有1次成为BAT的机会,你如何把握?

    本文转自:http://www.fmi.com.cn/index.php?m=content&c=index&a=show&catid=9&id=614308 感谢作者 ...

  7. BAT编程

    echo 表示显示此命令后的字符  echo off 表示在此语句后所有运行的命令都不显示命令行本身  @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响 ...

  8. 数百道BAT等大厂最新Python面试真题,学到你手软!

    春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法.提升 Python 编程能力,总是大有裨益的.今天,小编发现了一份好资源:Python 实现的面试题集锦! ...

  9. 解密国内BAT等大厂前端技术体系-腾讯篇(长文建议收藏)

    1 引言 为了了解当前前端的发展趋势,让我们从国内各大互联网大厂开始,了解他们的最新动态和未来规划.这是解密大厂前端技术体系的第三篇,前两篇已经讲述了阿里和百度在前端技术这几年的技术发展.这一篇从腾讯 ...

随机推荐

  1. iOS 常用控件 参数

    1.StatusBar 20px 2.TableViewCell 44px 3.TabBar 49px 4.NavigationBar 44px 5.NaviBarIcon 20*20px 6.Tab ...

  2. 把Actor绑定到角色的插槽上

    void AMonster::PostInitializeComponents(){ Super::PostInitializeComponents(); // instantiate the mel ...

  3. js事件绑定细节说明

    javascript绑定事件: 经常用jQuery去写,时间长了对原生态的js事件绑定的知识会慢慢淡化或者遗忘了,必须翻出来再次总结,今天再次把js原生态事件的处理做个总结. 从最初开始,谁刚接触ja ...

  4. HDU 2586 (LCA模板题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2586 题目大意:在一个无向树上,求一条链权和. 解题思路: 0 | 1 /   \ 2      3 ...

  5. Codeforces Round #235 (Div. 2)C、Team

    #include <iostream> #include <algorithm> using namespace std; int main(){ int n,m; cin & ...

  6. Codeforces Round #215 (Div. 2) B. Sereja and Suffixes

    #include <iostream> #include <vector> #include <algorithm> #include <set> us ...

  7. [杂谈] My Wikipedia

    // 此博文为迁移而来,写于2015年6月8日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w3de.html

  8. CF 16C. Monitor

    题目链接 水题依旧无法1Y. #include <cstdio> #include <iostream> #include <cmath> using namesp ...

  9. 【异常】java.lang.LinkageError: loader constraints violated

    [问题背景]      南非客户帐单提醒功能过程中的一个问题,当启动服务器后,后台报java.lang.LinkageError: loader constraints violated when l ...

  10. 升级OS X EI Capition 版本导致cocoapods 使用终端上pod: command not found

    1)安装过cocoapods, 那么输入 : sudo gem install -n /usr/local/bin cocoapods 当然 上个步骤解决了我的 难题 2)首先在终端输入 gem so ...