怎样使用bat任务删除7天前的文件夹及其里面的文件啊 文件夹自动生成的名称是这种时间格式 ‘2019-7-1’‘ 2019-7-2’可否根据这种时间来进行删除?
走
这篇文章主要为大家详细介绍了Windows下使用批处理文件.bat删除旧文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文教大家写一个批处理文件.bat删除旧文件,供大家参考,具体内容如下
1. 批处理文件 del_old_file.bat
rem 删除D:\temp目录下7天前的文件
Forfiles /p D:\temp /s /d -7 /m *.* /c "cmd /c del /q /f @path"
rem 删除C:\inetpub\logs目录下14天前的文件
Forfiles /p C:\inetpub\logs /s /d -14 /m *.* /c "cmd /c del /q /f @path"
2. 各参数的含义
rem: 注释命令,只是起一个注释的作用
/p:指定要删除的目录
/s:表示递归搜索子目录
/d:-14表示14天前的文件,-7表示7天前的文件
/m:*.* 表示所有文件类型,如果要删除特定文件格式,可自行指定(如:只删除txt文件,可写成 *.txt )
/c:自行指定的命令,后面双引号括起来的是删除文件命令
自行指定的命令 "cmd /c del /q /f @path" 中:
/c: 表示执行完批处理命令后,关闭CMD窗口
del: 删除文件的命令
/q:安静模式。删除全局通配符时,不要求确认
/f:强制删除只读文件。
3. 使用方式及会用到的地方
使用方式:可以在Windows任务计划程序中,创建定时任务来执行该批处理文件(如:每天什么时间执行、执行频率......)。
会用到的地方:用于删除占用资源且没有用的文件,可用于定时删除服务器上的很久以前的临时文件、IIS服务器log......
优点:只需简单几行命令,完成设定来实现目的是比较快的。
这篇文章主要为大家详细介绍了Windows下使用批处理文件.bat删除旧文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文教大家写一个批处理文件.bat删除旧文件,供大家参考,具体内容如下
1. 批处理文件 del_old_file.bat
rem 删除D:\temp目录下7天前的文件
Forfiles /p D:\temp /s /d -7 /m *.* /c "cmd /c del /q /f @path"
rem 删除C:\inetpub\logs目录下14天前的文件
Forfiles /p C:\inetpub\logs /s /d -14 /m *.* /c "cmd /c del /q /f @path"
2. 各参数的含义
rem: 注释命令,只是起一个注释的作用
/p:指定要删除的目录
/s:表示递归搜索子目录
/d:-14表示14天前的文件,-7表示7天前的文件
/m:*.* 表示所有文件类型,如果要删除特定文件格式,可自行指定(如:只删除txt文件,可写成 *.txt )
/c:自行指定的命令,后面双引号括起来的是删除文件命令
自行指定的命令 "cmd /c del /q /f @path" 中:
/c: 表示执行完批处理命令后,关闭CMD窗口
del: 删除文件的命令
/q:安静模式。删除全局通配符时,不要求确认
/f:强制删除只读文件。
3. 使用方式及会用到的地方
使用方式:可以在Windows任务计划程序中,创建定时任务来执行该批处理文件(如:每天什么时间执行、执行频率......)。
会用到的地方:用于删除占用资源且没有用的文件,可用于定时删除服务器上的很久以前的临时文件、IIS服务器log......
优点:只需简单几行命令,完成设定来实现目的是比较快的。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2020-11-26
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
@echo off
rem 删除指定天数之前以日期格式命名的文件夹
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set days=-7
>"%tmp%\t.t" echo;d=date+(%days%):WSH.echo right(year(d),4) ^& right("0" ^& month(d),2) ^& right("0" ^& day(d),2)
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\t.t"') do set dt=%%a
echo;[%dt%]
for /f "delims=" %%a in ('dir /ad/b^|findstr "^[0-9][0-9]*-[0-9][0-9]*-[0-9][0-9]*$"') do (
set "fd=%%a"
for /f "tokens=1-3 delims=-" %%b in ("%%~nxa") do (
set y=%%b
set m=00%%c
set d=00%%d
setlocal enabledelayedexpansion
if !y!!m:~-2!!d:~-2! leq %dt% (
echo;!fd!
rd /s /q "!fd!"
)
endlocal
)
)
echo;%#% +%$%%$%/%@% %z%
pause
exit本回答被网友采纳
@echo off
rem 删除指定天数之前以日期格式命名的文件夹
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set days=-7
>"%tmp%\t.t" echo;d=date+(%days%):WSH.echo right(year(d),4) ^& right("0" ^& month(d),2) ^& right("0" ^& day(d),2)
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\t.t"') do set dt=%%a
echo;[%dt%]
for /f "delims=" %%a in ('dir /ad/b^|findstr "^[0-9][0-9]*-[0-9][0-9]*-[0-9][0-9]*$"') do (
set "fd=%%a"
for /f "tokens=1-3 delims=-" %%b in ("%%~nxa") do (
set y=%%b
set m=00%%c
set d=00%%d
setlocal enabledelayedexpansion
if !y!!m:~-2!!d:~-2! leq %dt% (
echo;!fd!
rd /s /q "!fd!"
)
endlocal
)
)
echo;%#% +%$%%$%/%@% %z%
pause
exit本回答被网友采纳