找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23036|回复: 5

[文件操作] BAT批处理如何删除过期子目录?

[复制链接]
发表于 2014-6-10 17:41:33 | 显示全部楼层 |阅读模式
求助:
c:\temp目录下 ,有一堆子目录,均是每天产生新的子目录
c:\temp\aaaaa,
c:\temp\a22323,
c:\temp\123423,
.....
因为占据空间较大,想写bat,定期清理下面子目录。
(c:\temp自己目录下的文件不用处理,只需要删除下面的子目录)
开始考虑用rd目录,发现需要指出目录名才能用rd删除目录,也没办法判断目录日期。

需求:
1.每天定时删除c:\temp下所有子目录,除了当天日期的子目录
2.c:\temp本身需保留。


求高手赐教
 楼主| 发表于 2014-6-10 18:05:12 | 显示全部楼层
forfiles好像只能删除过期文件
发表于 2014-6-10 20:58:50 | 显示全部楼层
  1. @echo off
  2. pushd c:\temp\
  3. for /f "tokens=1,3*" %%a in ('dir /ad^|find "/"') do if not "%date:~0,10%"=="%%a" rd /s /q "%%c"
复制代码
 楼主| 发表于 2014-6-10 22:13:06 | 显示全部楼层
多谢楼上,但测试好像不行~
发表于 2014-6-11 09:38:29 | 显示全部楼层
回复 4# ditto


    @echo off
pushd c:\temp\
for /f "tokens=1,3*" %%a in ('dir /ad^|find "/"') do echo rd /s /q "%%c"

看看都回显了什么
 楼主| 发表于 2014-6-16 17:32:40 | 显示全部楼层
本帖最后由 ditto 于 2014-6-16 17:41 编辑

谢楼上。
没任何显示 也没报错

按你的代码,好像有时会把目录删空(把不能删的文件也删除了),有时能正确删除
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:39 , Processed in 0.031275 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表