标题: [文件操作] 批处理如何删除文件夹内所有内容? [打印本页]
作者: lose_fly 时间: 2011-1-6 15:49 标题: 批处理如何删除文件夹内所有内容?
批处理如何删除文件夹内所有内容,包括子文件夹及其文件 但保留原文件夹
比如"C:\Documents and Settings\ABC\Application Data\KuGou\SingerRes"文件夹下有很多以歌手名命名的文件夹,其内容为其头像
需要将SingerRes文件夹里的所有内容删除,但保留SingerRes文件夹。
要如何才能实现。。。。
这样可以吧。。
- @echo off
-
- rd /s /q "%AppData%\KuGou\SingerRes" & md "%AppData%\KuGou\SingerRes"
-
- echo 清除LJ完成!
-
- echo. & pause
复制代码
[ 本帖最后由 lose_fly 于 2011-1-6 19:46 编辑 ]
作者: manhua 时间: 2011-1-6 16:30
- @echo off
- for /r C:\Documents and Settings\ABC\Application Data\KuGou\SingerRes %%a in (*) do del %%a
复制代码
作者: hanyeguxing 时间: 2011-1-6 18:39
- @echo off
- set "r=%AppData%\KuGou\SingerRes"
- 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"
复制代码
作者: lose_fly 时间: 2011-1-6 19:10 标题: 回复 2楼 的帖子
这就相当于- del /s /f /q "C:\Documents and Settings\ABC\Application Data\KuGou\SingerRes\*.*"
复制代码
吧
而且对文件名还有限制。。。
[ 本帖最后由 lose_fly 于 2011-1-6 19:28 编辑 ]
作者: lose_fly 时间: 2011-1-6 19:37 标题: 回复 3楼 的帖子
如果有好几个这样的文件夹 该怎么办
作者: manhua 时间: 2011-1-7 11:32
原帖由 lose_fly 于 2011-1-6 19:37 发表
如果有好几个这样的文件夹 该怎么办
就多设几个变量,再重复FOR循环。
我的代码不能删除文件夹,而且带有空格的文件名,删不掉。3F的完全可以。
作者: hanyeguxing 时间: 2011-1-7 13:16 标题: 回复 5楼 的帖子
- @echo off
- 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"
- exit
- ::以下为路径列表,每行一个
- %AppData%\KuGou\SingerRes
复制代码
作者: lose_fly 时间: 2011-1-7 18:37 标题: 回复 7楼 的帖子
我运行的代码是:
- @echo off
- 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"
- exit
- ::以下为路径列表,每行一个
- %AppData%\1
- %AppData%\2
-
- echo. & pause
复制代码
结果却是:
- 文件名、目录名或卷标语法不正确。
- 文件名、目录名或卷标语法不正确。
- 文件名或扩展名太长。
- 找不到文件
- 'C:\Documents' 不是内部或外部命令,也不是可运行的程序
- 或批处理文件。
- 'C:\Documents' 不是内部或外部命令,也不是可运行的程序
- 或批处理文件。
-
- 请按任意键继续. . .
复制代码
[ 本帖最后由 lose_fly 于 2011-1-7 18:40 编辑 ]
作者: hanyeguxing 时间: 2011-1-7 18:39 标题: 回复 8楼 的帖子
把你运行的代码贴上来。。。
作者: lose_fly 时间: 2011-1-7 18:51 标题: 回复 9楼 的帖子
- @echo off
- 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"
- exit
- %AppData%\1
- %AppData%\2
-
- echo. & pause
复制代码
more +4 是指从第4行开始
^<"%~f0" 是什么意思呀。。
作者: hanyeguxing 时间: 2011-1-7 19:04
- @echo off
- 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"
- pause&exit
- ::以下为路径列表,每行一个
- %AppData%\1
- %AppData%\2
复制代码
1,注意::开头那行以上的部分不得修改。
2,注意::开头那行不得删除,否则同步修改more +的数字为3
3,列表中的路径必须存在!~
4,<"%~f0"从批处理自身读取
[ 本帖最后由 hanyeguxing 于 2011-1-7 19:06 编辑 ]
作者: lose_fly 时间: 2011-1-7 19:32 标题: 回复 11楼 的帖子
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 系统找不到指定的路径。
- 请按任意键继续. . .[/
复制代码
将%AppData%换成具体路径就行了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |