如何设置电脑自动删除前一个月产生的文件夹?

我的E盘每天会自动产生一个文件夹,按日期生成如 2013-10-01, 2013-10-02.............

我想每个月把上个月自动生成的所有文件夹都删除。

这个批处理文件要如何建?

你原来回答的帖子:http://zhidao.baidu.com/link?url=R1FVhao1i29IBmUbSaLl6ht1Nmnv-UtILRjakD2b1Fg2sOWbJ4lMDcVuCDgn93O8GgMgarYHFHHIJEnFxndlga

for /F %D in (';dir /ad/b E:\20*-*-*';) do @rd /s /q E:\%D\

上面的保存成 del.cmd


然后添加一个计划任务,每月一号执行,删除所有20xx-xx-xx格式的文件夹,像你提供的问题上写的那样,执行的命令就是这个cmd啦。试试行不行,还可以优化下。

追问

不好意思,可能我的表达有点问题。我的本意是想让电脑自动删除过去几个月里自动生成的文件夹,还想保留本个月,或是近2,3个月的内容。

那是否能实现,比如现在是10月份,我想电脑执行删除2013-07-*,而下个月11月,电脑会自动执行删除2013-08-*,而且还要防止电脑误删。

追答@echo off

::设置多少个月前。这里是1个月前,可以换成你想要的数字
set before=1
set year=%date:~0,4%
set /a month=%date:~5,2% - %before%


:: 跨年
if %month% lss 1 set /a year=%year%-1 && set /a month=12+%month%
:: 1-9 月 转成 0x 月的格式
if %month% lss 10 set month=0%month%

for /F %%D in (';dir /ad/b E:\%year%-%month%-*';) do rd /s /q E:\%%D\


上个回答有个错误 %D 应该是 %%D,不好意思。

试试这个。这个批处理每次执行都会删除目录下存在的所有前一月的文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-30
@echo 注:例子是如果你想删除C:\123\A文件夹,这里的文件夹路径请按需要修改,然后清空回收站

rd /s /q C:\123\A
attrib -h -s -r "C:\RECYCLER\S-1-5-21-1343024091-57989841-1417001333-500"
rd/s/q "C:\RECYCLER\S-1-5-21-1343024091-57989841-1417001333-500"

上面是在你原来的帖子看到的 具体好使不好使我没试 也不太懂语法的事 但是批处理文件我会

第一步 在桌面右键新建文本文档 把上面的东西复制进去
第二部 点击文件 另存为 在文件名处起一个名字 比如"自动删除" 并且在自动删除后加".cmd" 合起来就是 自动删除.cmd 然后保存(不用写引号)就可以了
第2个回答  2013-10-30
@echo off
for /r %%i in (.) do (
for /f "tokens=1,2,3 delims=-" %%a in ("%%~ni") do (
if %%b geq 1 (
if %%b lss %date:~5,2% (rd /s /q "%%~ni"
)
) else (rd /s /q *-12-*)
)
)
pause
相似回答