有趣的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 清除缓存中复制出来的文件名中[1]字符! setlocal EnableDelayedExpansion set wkdxz=[1] for /f "usebackq delims=/ tokens=1,2" %%b in ('%wkdxz%') do ( for %%a in (*) do ( set xz=%%a if "%%c"=="" ren !xz! !xz:%%b=! 2>nul||ren !xz! "!xz:%%b=!(2)" 2>nul ren !xz! !xz:%%b=%%c! 2>nul||ren !xz! "!xz:%%b=%%c!(2)" 2>nul ) title 成功! color 0a&cls&echo 重命名成功! ) del %0
替换文件名中的任意字符:
@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=! 2>nul||ren !xz! "!xz:%%b=!(2)" 2>nul ren !xz! !xz:%%b=%%c! 2>nul||ren !xz! "!xz:%%b=%%c!(2)" 2>nul ) title 成功! color 0a&cls&echo 重命名成功! ) ping /n 3 127.1>nul
添加WINDOWS定时重启任务的BAT
@echo off echo ┌────────────────────────┐ echo │Windows服务器定时重启 │ echo └────────────────────────┘ echo 正在设置…… rem copy shutdown.exe %windir%\system32\shutdown.exe at 0:20 /every:M %windir%\system32\shutdown.exe /r echo 设置完成,请按任意键退出…… pause>nul
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述