[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何删除文件夹内所有内容?

批处理如何删除文件夹内所有内容,包括子文件夹及其文件  但保留原文件夹

比如"C:\Documents and Settings\ABC\Application Data\KuGou\SingerRes"文件夹下有很多以歌手名命名的文件夹,其内容为其头像

需要将SingerRes文件夹里的所有内容删除,但保留SingerRes文件夹。

要如何才能实现。。。。

这样可以吧。。
  1.            @echo off
  2.                  rd /s /q "%AppData%\KuGou\SingerRes" & md "%AppData%\KuGou\SingerRes"
  3.             echo 清除LJ完成!
  4.             echo. & pause
复制代码

[ 本帖最后由 lose_fly 于 2011-1-6 19:46 编辑 ]

  1. @echo off
  2. for /r C:\Documents and Settings\ABC\Application Data\KuGou\SingerRes %%a in (*) do del %%a
复制代码

TOP

  1. @echo off
  2. set "r=%AppData%\KuGou\SingerRes"
  3. for /f "delims=" %%a in ('dir /b/a "%r%"') do if exist "%r%\%%a\" (rd /q/s "%r%\%%a") else del /f/a "%r%\%%a"
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 2楼 的帖子

这就相当于
  1. del /s /f /q "C:\Documents and Settings\ABC\Application Data\KuGou\SingerRes\*.*"
复制代码

而且对文件名还有限制。。。

[ 本帖最后由 lose_fly 于 2011-1-6 19:28 编辑 ]

TOP

回复 3楼 的帖子

如果有好几个这样的文件夹 该怎么办

TOP

原帖由 lose_fly 于 2011-1-6 19:37 发表
如果有好几个这样的文件夹 该怎么办



就多设几个变量,再重复FOR循环。
我的代码不能删除文件夹,而且带有空格的文件名,删不掉。3F的完全可以。

TOP

回复 5楼 的帖子

  1. @echo off
  2. for /f "delims=" %%a in ('more +4^<"%~f0"') do for /f "delims=" %%b in ('dir /b/a "%%a"') do if exist "%%a\%%b\" (rd /q/s "%%a\%%b") else del /f/a "%%a\%%b"
  3. exit
  4. ::以下为路径列表,每行一个
  5. %AppData%\KuGou\SingerRes
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 7楼 的帖子

我运行的代码是:
  1. @echo off
  2. for /f "delims=" %%a in ('more +4^<"%~f0"') do for /f "delims=" %%b in ('dir /b/a "%%a"') do if exist "%%a\%%b\" (rd /q/s "%%a\%%b") else del /f/a "%%a\%%b"
  3. exit
  4. ::以下为路径列表,每行一个
  5. %AppData%\1
  6. %AppData%\2
  7.   echo. & pause
复制代码


结果却是:
  1. 文件名、目录名或卷标语法不正确。
  2. 文件名、目录名或卷标语法不正确。
  3. 文件名或扩展名太长。
  4. 找不到文件
  5. 'C:\Documents' 不是内部或外部命令,也不是可运行的程序
  6. 或批处理文件。
  7. 'C:\Documents' 不是内部或外部命令,也不是可运行的程序
  8. 或批处理文件。
  9. 请按任意键继续. . .
复制代码

[ 本帖最后由 lose_fly 于 2011-1-7 18:40 编辑 ]

TOP

回复 8楼 的帖子

把你运行的代码贴上来。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 9楼 的帖子

  1. @echo off
  2. for /f "delims=" %%a in ('more +4^<"%~f0"') do for /f "delims=" %%b in ('dir /b/a "%%a"') do if exist "%%a\%%b\" (rd /q/s "%%a\%%b") else del /f/a "%%a\%%b"
  3. exit
  4. %AppData%\1
  5. %AppData%\2
  6.   echo. & pause
复制代码


more +4   是指从第4行开始
^<"%~f0"  是什么意思呀。。

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('more +4^<"%~f0"') do for /f "delims=" %%b in ('dir /b/a "%%a"') do if exist "%%a\%%b\" (rd /q/s "%%a\%%b") else del /f/a "%%a\%%b"
  3. pause&exit
  4. ::以下为路径列表,每行一个
  5. %AppData%\1
  6. %AppData%\2
复制代码
1,注意::开头那行以上的部分不得修改。
2,注意::开头那行不得删除,否则同步修改more +的数字为3
3,列表中的路径必须存在!~
4,<"%~f0"从批处理自身读取

[ 本帖最后由 hanyeguxing 于 2011-1-7 19:06 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 11楼 的帖子

  1. 系统找不到指定的路径。
  2. 系统找不到指定的路径。
  3. 系统找不到指定的路径。
  4. 系统找不到指定的路径。
  5. 系统找不到指定的路径。
  6. 系统找不到指定的路径。
  7. 系统找不到指定的路径。
  8. 系统找不到指定的路径。
  9. 系统找不到指定的路径。
  10. 系统找不到指定的路径。
  11. 请按任意键继续. . .[/
复制代码

将%AppData%换成具体路径就行了

TOP

返回列表