Board logo

标题: [文件操作] [已解决]批处理如何删除根目录下所有文件夹中的子目录和文件? [打印本页]

作者: dbfs    时间: 2009-12-16 16:54     标题: [已解决]批处理如何删除根目录下所有文件夹中的子目录和文件?

目前有一个目录开发给部门所有同事做为临时文件存放备份使用,但是需要定期清理,如何能够做到删除这些用户目录下的子目录和文件,但是用户目录还在?谢谢!不知道描述清楚没有,比如清理前目录结构如下:
share
  --zhang3
    --XXX
    --XXX
  --li4
    --XXX
    --XXX
    --XXX
  --wang5
    --XXX
    --XXX清理后:
share
  --zhang3
  --li4
  --wang5

[ 本帖最后由 dbfs 于 2009-12-17 11:09 编辑 ]
作者: Batcher    时间: 2009-12-16 16:58

  1. del /s /f /a /q "C:\share\*.*"
复制代码

作者: dbfs    时间: 2009-12-16 17:04     标题: 回复 2楼 的帖子

这样只能删除这些目录下的文件,这些目录下的子目录删不掉哦
如果用rd删除目录,就会把这些用户目录也删除了,就是这个我比较头疼

[ 本帖最后由 dbfs 于 2009-12-16 17:07 编辑 ]
作者: wsjxwj    时间: 2009-12-16 18:47

这个简单
  1. @echo off
  2. rd \\computer\share\. /q /s && md \\computer\share\zhang3&md \\computer\share\li4&mdmd \\computer\share\wang5
  3. cls
复制代码

作者: dbfs    时间: 2009-12-17 09:07     标题: 回复 4楼 的帖子

这样不行,用户有100多个,这样就太麻烦了
而且用户文件夹因为共享给各用户,文件夹进行了共享和安全设置,不能够直接删除再新建,所以不能rd之后md,这样文件夹属性就变了。
请各位看看还有什么好方法吗?谢谢
作者: terse    时间: 2009-12-17 10:07

  1. @echo off
  2. set "p=c:\share"
  3. for /f "delims=" %%i in ('dir /b/ad "%p%"') do (
  4.     for /f "delims=" %%j in ('dir /b/ad "%p%\%%i"') do rd /s /q "%p%\%%i\%%j"
  5. )
  6. pause
复制代码

作者: dbfs    时间: 2009-12-17 10:50     标题: [已解决]批处理如何删除根目录下所有文件夹中的子目录和文件?

将2楼和6楼两位提供的代码结合能很好的实现我需要的功能,谢谢两位




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2