有趣的BAT
最近某个用到的第三方程序会产生很多日志文件在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的更多相关文章
- winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除
在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉.比如卸载.分享一个比较简单实现. 思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除 ...
- 各种有趣vbs,bat脚本
短信轰炸.vbs Dim btn,ie Set ie = WScript.CreateObject("InternetExplorer.Application") ie.Visib ...
- BAT批处理(一)
本文摘自博文<BAT批处理文件教程> 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如 ...
- 自己写的browse.bat与perl写的url_handler.pl的比较
以前自己也写过Windows下自动打开多个浏览器测试某个URI,提高浏览器兼容性测试效率. 但是写的browse.bat文件还是最基础简陋的 @echo off if '%1'=='-c' ( sta ...
- 批处理最完整人性化教程(.bat文件语法)
原文链接:http://www.cnitblog.com/seeyeah/archive/2009/01/15/53808.html 这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字 ...
- 一辈子只有1次成为BAT的机会,你如何把握?
本文转自:http://www.fmi.com.cn/index.php?m=content&c=index&a=show&catid=9&id=614308 感谢作者 ...
- BAT编程
echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响 ...
- 数百道BAT等大厂最新Python面试真题,学到你手软!
春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法.提升 Python 编程能力,总是大有裨益的.今天,小编发现了一份好资源:Python 实现的面试题集锦! ...
- 解密国内BAT等大厂前端技术体系-腾讯篇(长文建议收藏)
1 引言 为了了解当前前端的发展趋势,让我们从国内各大互联网大厂开始,了解他们的最新动态和未来规划.这是解密大厂前端技术体系的第三篇,前两篇已经讲述了阿里和百度在前端技术这几年的技术发展.这一篇从腾讯 ...
随机推荐
- LCS POJ 1458 Common Subsequence
题目传送门 题意:输出两字符串的最长公共子序列长度 分析:LCS(Longest Common Subsequence)裸题.状态转移方程:dp[i+1][j+1] = dp[i][j] + 1; ( ...
- Codeforces 676C Vasya and String(尺取法)
题目大概说给一个由a和b组成的字符串,最多能改变其中的k个字符,问通过改变能得到的最长连续且相同的字符串是多长. 用尺取法,改变成a和改变成b分别做一次:双指针i和j,j不停++,然后如果遇到需要改变 ...
- BZOJ3084 : [Algorithmic Engagements 2011]The Shortest Period
枚举答案长度$L$,设$A$和$B$分别为第一个循环节和反串的第一个循环节. 1.坏点不在$A$,那么可以暴力匹配检验. 2.坏点不在$B$,那么把串翻转后不在$A$中,转化为1. 3.坏点在$A$和 ...
- 图解Storm
问题导读:1.你认为什么图形可以显示hadoop与storm的区别?(电梯)2.本文是如何形象讲解hadoop与storm的?(离线批量处理.实时流式处理)3.hadoop map/reduce对应s ...
- Storm分布式实时流计算框架相关技术总结
Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解S ...
- [转] linux 下查看一个进程运行路径的方法
http://blog.csdn.net/brioxu/article/details/5104736 在linux下查看进程大家都会想到用 ps -ef|grep XXX ps -aux | hea ...
- JS 特殊字符的魅力
特殊字符的魅力 说在前面—鸭子类型 鸭子类型是动态类型的一种风格,在这种风格中,一个对象有效的语义,不是由继承自特定的类或者实现特定的接口,而是由当前方法和属性的集合决定. “当看到一只鸟走起来像鸭子 ...
- 淘宝UED上关于chrome的transition闪烁问题的解决方案
前段时间,有同事和会员反馈使用Chrome访问淘宝首页会出现画面闪动的现象,但是我在Mac和Win下面的Chrome都无法重现这个问题,后来重装了一遍Win7下的Chrome Beta版本,终于重现了 ...
- BZOJ1565: [NOI2009]植物大战僵尸
Description Input Output 仅包含一个整数,表示可以获得的最大能源收入.注意,你也可以选择不进行任何攻击,这样能源收入为0. Sample Input 3 2 10 0 20 0 ...
- 使用C语言在windows下一口气打开一批网页
作者:郝峰波 mail : fengbohello@qq.com 本博客地址:http://www.cnblogs.com/fengbohello/p/4374450.html 1.核心函数说明 核心 ...