bat批处理删除日志文件

公司的程序猿写的软件只管生成日志,却没写删除过期的日志,时间久了日志文件非常多,占用大量空间,写这个是为了方便手动删除日志文件。目前还没有思路写自动搜索并生成日志目录表的批处理,比如说全盘搜索包含log的,以后再搞吧。
参考:《BAT批处理定期删除清理指定N天前的文件》

删除前N天日志文件 [无需确认,第一次慎用]

使用说明:

  1. 复制下面的代码,粘贴到txt文件,文件名称随意(代码会自动修改),修改后缀为bat。

  2. 使用时需要自行创建**《日志目录表.txt》**,和bat文件放在一起即可。在这里插入图片描述

  3. 日志目录表.txt中填写需要删除的日志文件所在文件夹的路径。每一行填写一个文件夹的路径。在这里插入图片描述

  4. 指定天数,是指需要删除多少天以前的文件。例如代码中填的是100,就会删除100天前的文件。这里的数值修改后,运行时bat文件名称会同步改变。

  5. 运行过程中会在桌面生成一个统计删除文件信息的文件,不用管它,代码运行结束时会自动删除的。

  6. 注意:批处理删除的文件,不可恢复,使用时要小心别删错了。

:: 复制下面的代码,粘贴到txt文件,修改后缀为bat,双击运行即可。
@echo off
SETLOCAL enabledelayedexpansion

:: 指定天数
set "a=%1"
if "%a%"=="" set DaysAgo=100
title 删除%DaysAgo%天前的日志文件

if not exist "删除前%DaysAgo%天日志文件 [无需确认,第一次慎用].bat" (
ren "%~nx0" "删除前%DaysAgo%天日志文件 [无需确认,第一次慎用].bat"
call "删除前%DaysAgo%天日志文件 [无需确认,第一次慎用].bat" %DaysAgo%
)

echo,
echo,########## 删除日志开始 ##########

for /f "eol=# tokens=*" %%i in (日志目录表.txt) do (
echo,
echo,===开始删除 [%%i] 目录中%DaysAgo%天前的日志文件===

if exist "%%i" (
:: cls
color 0c
forfiles /p "%%i" /s /m *.* /c "cmd /c del /f /q /a @path&&echo,del /f /q /a @path&&echo,@path=@fsize>>%userprofile%\desktop\fileinfo.log" /d -%DaysAgo%
) else ( echo,[%%i] 目录不存在)
echo,=============================完成=============================
)

echo,
set count_fn=0
set count_fs=0
for /f "delims== tokens=1,2" %%a in (%userprofile%\desktop\fileinfo.log) do (
set /a count_fn+=1
set /a count_fs+=%%b
)

del %userprofile%\desktop\fileinfo.log
echo,本次共删除:!count_fn!个文件。
echo,本次共删除:!count_fs!字节。
echo,
echo,########## 删除日志结束 ##########
pause>nul

删除前N天日志文件 [另外一个版本]

使用说明:

这个是比较安全的删除方法,使用方法大同小异。
每次删除一个路径中的文件前,会先打开文件夹看下,确认好后再决定是否删除,在命令提示符输入y或者n。
用起来比较麻烦。

@echo off
SETLOCAL enabledelayedexpansion

:: 指定天数
set "a=%1"
if "%a%"=="" set /p DaysAgo=指定删除N天前:
title 删除%DaysAgo%天前的日志文件

if not exist "删除前%DaysAgo%天日志文件.bat" (
ren "%~nx0" "删除前%DaysAgo%天日志文件.bat"
call "删除前%DaysAgo%天日志文件.bat" %DaysAgo%
)

echo,
echo,########## 删除日志开始 ##########

for /f "eol=# tokens=*" %%i in (日志目录表.txt) do (
echo,
echo,===开始删除 [%%i] 目录中%DaysAgo%天前的日志文件===

if exist "%%i" (
start "" "%%i"
:: cls
color 0c
choice /m "请确认此目录中日志文件是否删除"
if !errorlevel! equ 1 (
color 07
forfiles /p "%%i" /s /m *.* /c "cmd /c del /f /q /a @path&&echo,del /f /q /a @path&&echo,@path=@fsize>>%userprofile%\desktop\fileinfo.log" /d -%DaysAgo%
)
) else ( echo,[%%i] 目录不存在)
echo,=============================完成=============================
)

echo,
set count_fn=0
set count_fs=0
for /f "delims== tokens=1,2" %%a in (%userprofile%\desktop\fileinfo.log) do (
set /a count_fn+=1
set /a count_fs+=%%b
)

del %userprofile%\desktop\fileinfo.log
echo,本次共删除:!count_fn!个文件。
echo,本次共删除:!count_fs!字节。
echo,
echo,########## 删除日志结束 ##########
pause>nul
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BAT批处理文件可以用来进行C盘瘦身工作。C盘瘦身是指通过删除或清理不必要的文件文件夹来释放C盘上的空间,提高计算机的性能和效率。 首先,可以使用BAT批处理文件删除临时文件。临时文件是计算机在运行过程中生成的临时数据,它们通常没有实际的作用并且占用了大量的磁盘空间。我们可以使用`del`命令来删除指定类型的临时文件,例如`.tmp`、`.temp`等。 其次,BAT批处理文件可以帮助删除回收站中的文件。回收站是存储已删除文件的临时储存区域,删除文件只是将其移动到回收站中,占用了磁盘空间。我们可以使用`rd`命令来清空回收站,`rd /s /q %systemdrive%\Recycler`也可以永久删除回收站中的文件。 还可以使用BAT批处理文件删除不需要的程序和应用。在控制面板的“程序和功能”中,我们可以看到安装在计算机上的程序列表。使用`wmic`命令可以列出并删除指定的程序。例如,使用`wmic product where name="软件名称" call uninstall`命令可以卸载指定的软件。 最后,BAT批处理文件也可以进行磁盘清理工作。可以使用`cleanmgr`命令来运行Windows自带的磁盘清理工具,清理无用的系统文件日志,释放磁盘空间。 总而言之,使用BAT批处理文件进行C盘瘦身工作可以帮助删除临时文件、清空回收站、卸载不需要的程序和应用,以及进行磁盘清理,从而释放C盘的空间,提高计算机的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值