bat 批处理程序删除文件夹,删除两天前的文件夹和文件
具体是这样的:比如今天是2009-12-7,我想删除的是12-5以前的文件夹。我的文件夹是以日期命名的,也就是说删除两天前的文件夹和里面的文件,不删除两天以内的文件夹和文...
具体是这样的:比如今天是2009-12-7,我想删除的是12-5以前的文件夹。
我的文件夹是以日期命名的,也就是说 删除两天前的文件夹和里面的文件,不删除两天以内的文件夹和文件 如果能给我自动判断以文件夹创建的系统时间来删除的我再家50 展开
我的文件夹是以日期命名的,也就是说 删除两天前的文件夹和里面的文件,不删除两天以内的文件夹和文件 如果能给我自动判断以文件夹创建的系统时间来删除的我再家50 展开
2个回答
2013-06-23
展开全部
保存为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
@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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-23
展开全部
用VBS吧,用法是一样的,写进记事本,把后缀txt改成VBS就可以了!然后双击运行就可以了!我脚本的意思是,在D盘的111文件夹里有2009-12-1,2009-12-2……等子文件夹,运行脚本后,删除不符合要求的文件夹 Set fso=WScript.CreateObject("scripting.filesystemobject")
Set fs=fso.GetFolder("d:\111")
Set f=fs.SubFolders
For Each uu In f
s=CDate(uu.Name)
If s<#2009-12-5# Then
uu.Delete
End if
next
Set fs=fso.GetFolder("d:\111")
Set f=fs.SubFolders
For Each uu In f
s=CDate(uu.Name)
If s<#2009-12-5# Then
uu.Delete
End if
next
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询