bat删除多少天之前的文件|bat脚本删除5天之前的文件

1. bat脚本删除5天之前的文件

bat脚本:批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。@echo off::在d:\测试文件夹中删除5天前以日期为主名的txt文件cd/d "d:\测试文件夹"set/a n=5set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100set/a d-=nif %d% gtr 0 goto :ok:ovset/a "md=31-!(m-5)-!(m-7)-!(m-10)-!(m-12)-!(m-3)*(3-!(y&3))"set/a d+=md,m-=1if %m% equ 0 set/a m=12,y-=1if %d% leq 0 goto :ov:okset/a md=m*100+d+10000set "ymd=%y%%md:~1%"echo %n% 天前日期为%ymd%set "s=20[0-9][0-9][0-1][0-9][0-3][0-9]"for /f "delims=" %%i in ('dir/b^|findstr/ix "%s%\.txt"') do ( if "%%~ni" leq "%ymd%" (del %%i&&echo %%i) )pause

2. 请问:如何批处理删除文件夹及其所有子文件夹下N天前所有文件

当文件夹里面的某一个文件当前时间被修改过,这个文件夹的修改时间就会变成当前时间.以删除30天以前的文件夹为例.如果一个文件夹的最后时间都是30天以前.那么在30天以内该文件夹下的所有文件都没有被修改过.而一个文件夹如果不在30天以前,那么也可能文件夹下的某些文件是在30天以前的.根据这个思路.先删除30天以前的文件夹.再删除30天以内文件夹下所有30天以前的文件.那么就结果就如下:forfiles -D -30 /M * /C "cmd /c rd @file /s /q"forfiles -D -30 /S /M * /C "cmd /c del @path /s /q"两行批处理即可搞定

3. bat 批处理程序删除文件夹,删除两天前的文件夹和文件

保存为bat文件运行,这是删除e:\111文件夹下的2天前的rar文件. 可根据自己的要求修改@echo off&setlocal EnableDelayedExpansion ::取2天之前的日期.set _tian=2下面这句中的2代表天数. set "_tian=2" >tmptmp.vbs echo wscript.echo dateadd("d",-%_tian%,date) for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo tmptmp.vbs') do ( set "y=%%i"&set "m=%%j"&set "d=%%k" ) if %m% LSS 10 set "m=0%m%" if %d% LSS 10 set "d=0%d%" set "rq=%y%-%m%-%d%" echo.&echo 注意:即将删除 %rq% 以前建立的文件 ::判断文件 for /f "delims=" %%a in ('dir/b/a-d e:\111\*.rar') do ( set "a=0" for /f "skip=4 delims=" %%b in ('dir/tc "e:\111\%%a"') do ( set /a "a+=1" if !a! equ 1 ( set "var=%%b" for /f "tokens=1 delims= " %%c in ("!var!") do set "str=%%c" if !str! lss !rq! del /q "e:\111\%%a" ))) del/q temtem.vbs pause


赞 (0)