批处理bat问题:删除一个文件夹下所有子文件夹下指定时间前的文件

我的backup文件夹下会每天根据当天时间生成,backup2013620子文件夹,比如今天会生成backup2013621子文件夹,我想建立一个批处理,每天执行,删除backup文件夹下7天前生成的子文件夹

要是有个2013111,这是11月1号,还是1月11号????????,本身这样做备份文件名就不太合理的,要做也做成yyyymmdd全用8位格式的.

下面代码是比较文件的创建时间来处理,不是比较文件夹名称上的时间

测试结果正确后删除第6行的echo 

@echo off
for /f "tokens=1-3 delims=/- " %%a in ("%date%")do set/a y=%%a,m=1%%b%%100,d=1%%c%%100,"m=(m+9)%%12,y-=m/10+1900,i=365*y+y/4+(m*153+2)/5+d-1"
for /f "tokens=1,4" %%i in ('dir /tc/ad backup*^|find "<DIR>"') do (
  setlocal enabledelayedexpansion
  for /f "tokens=1-3 delims=/- " %%a in ("%%i")do set/a y=%%a,m=1%%b%%100,d=1%%c%%100,"m=(m+9)%%12,y-=m/10+1900,i-=365*y+y/4+(m*153+2)/5+d-1"
  if !i! gtr 7 echo rd /s/q "%%j"
  endlocal
)
pause&exit /b

温馨提示:内容为网友见解,仅供参考
无其他回答

批处理bat问题:删除一个文件夹下所有子文件夹下指定时间前的文件
下面代码是比较文件的创建时间来处理,不是比较文件夹名称上的时间 测试结果正确后删除第6行的echo echo offfor \/f "tokens=1-3 delims=\/- " %%a in ("%date%")do set\/a y=%%a,m=1%%b%%100,d=1%%c%%100,"m=(m+9)%%12,y-=m\/10+1900,i=365*y+y\/4+(m*153+2)\/5+d-1"for...

bat批处理文件夹下所有子文件夹和文件删除特定字符前后内容?
不清楚你的实际文件\/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件或文件夹放一起双击运行 <# :cls&echo off&cd \/d "%~dp0"&mode con lines=5000rem 将当前目录下所有文件和文件夹的名称末尾的一个指定字符及其后面的字符删除,...

请问:如何批处理删除文件夹及其所有子文件夹下N天前所有文件?
而一个文件夹如果不在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...

批处理删除文件夹下及子文件夹下指定名称的文件夹
如果指定了一个目录,该目录中的所 有文件都会被删除。\/P 删除每一个文件之前提示确认。\/F 强制删除只读文件。\/S 删除所有子目录中的指定的文件。\/Q 安静模式。删除全局通配符时,不要求确认 \/A 根据属性选择要删除的文件 属性 R 只读文件 S 系统文件 H 隐藏文件 A...

批处理删除文件夹下所有文件
批处理删除文件夹下所有文件的方法:1、电脑上新建一个文件夹,新建一个“TXT”文件,并命名;2、点击右键,把文件的后缀名设置为.bat;3、另新建文件夹和文件,作为列出的示例;4、右键打开文件,第一行输入“del 、q、a、fC:、Users、Administrator、Desktop、新建文件夹、a”作为命令行;5、第二...

BAT脚本_删除指定文件夹下31天前的文件
Explorer),因为ForFiles是其组件,或者尝试以管理员身份运行命令行。如果问题依旧,可能需要检查环境变量或安装Windows Management Framework(WMI)以包含ForFiles命令。在执行前,建议先备份重要文件,以防意外删除。如果不确定,可以创建一个批处理文件,测试命令是否正确,再决定是否在目标文件夹上执行。

bat批处理文件 删除制定文件夹当前日期3个月以前的文件
set fol=fso.getfolder(Folder)for each i in fol.files datefile = fso.getfile(i).Datelastmodified dt=datediff("m",datefile,now)if datevalue(datefile)<=datevalue(dateadd("m",dt-3,now)) then fso.deletefile i next '经测试.凡是3个月之前的文件都会被删除 '保存为vbs类型文件 ...

批处理只删除一个众多的文件夹里,昨天的文件夹?
在批处理里去判断一个文件夹的创建日期至今相隔的天数,还得用到儒略日这个概念,可以先了解一下;建议搜索 Julian_Day_Number 分享一下我整理的完整代码:ECHO OFF & SETLOCAL ENABLEDELAYEDEXPANSION REM 删除指定天数前创建的目录(所有子目录及文件)REM 指定维护的目录 SET FOLDER=d:\\temps REM 设置...

想要使用bat来删除某指定文件夹内的,指定天数以前的文件。
如果每天一个文件的话,删除30天前的文件为例,可以用下面的方法 echo off pushd d:\\指定文件夹 set n=30 for \/f "skip=%n% tokens=*" %%i in ('dir\/b\/o-d') do del "%%i"如果每天文件多于一个的话,需借助vbs来实现。用bat本身判断日期的有效性有点复杂。

bat删除指定创建日期天数前文件及文件夹
-ErrorAction:SilentlyContinue | Where-Object -FilterScript {(((get-date) - ($_.CreationTime)).days -gt %DaysAgo% -and $_.PsISContainer -ne $True)} | Select-Object FullName"pause以上代码来自批处理之家 Batcher,更多信息请访问原文 批处理删除指定天数日期之前的文件(2017-05-17)

相似回答