标题: [求助]用批处理删除所有分区下的空文件夹
[打印本页]
作者: jy02116916
时间: 2009-2-4 15:02
标题: [求助]用批处理删除所有分区下的空文件夹
我自己想出的命令是
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /ad/b/s "%%a\" | sort /r >>%temp%\dir.txt
for /f %%b in (%temp%\dir.txt) do rd %%b
用第一句命令是用于按顺序排列出所有分区下文件夹,用文本的方式放到临时目录的dir.txt中,第二句是用于删除的,因为rd命令不添加任何参数话只会删除空的目录,但是由于一些文件夹名称是带空格的,如(Documents and Settings,Program Files等),要用rd命令执行删除这些文件夹中的内容都必须添加上“""”引号,我的问题就是如何让列出的目录名全部添加上""号,删除调用rd "%%b"是不可以的,我试过。
[
Last edited by jy02116916 on 2009-2-4 at 15:04 ]
作者: cad55
时间: 2009-2-4 15:23
for /f "tokens=*" %%a in ('dir /b /ad /s "z:\"^|sort /r') do rd "%%a" 2>nul
删除z盘下所有空文件夹
作者: jy02116916
时间: 2009-2-4 16:54
cad55的命令只能删除z盘下的空文件夹 而且碰到带空格的文件夹名称就没有效果了
我的问题主要是想问在运行for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /ad/b/s "%%a\" | sort /r >>%temp%\dir.txt命令后,如何在dit.txt中每一行中首尾添加""
[ Last edited by jy02116916 on 2009-2-4 at 16:59 ]
作者: andison625
时间: 2009-2-4 18:15
这个,放到WORD里编辑一下,用 "^p" 替换所有 ^p
然后在第一行前加个 ",删除最后一行的"
作者: HAT
时间: 2009-2-4 18:51
标题: Re 4楼
这里是批处理版,不是WORD版,应该首先考虑批处理吧^_^
作者: netbenton
时间: 2009-2-4 21:23
::这样可以直接删除了,如果要存到 %temp%\dir.txt
::把 rd "%%~fi"改成:echo."%%~fi">>%temp%\dir.txt
@echo off
for /f "skip=1 delims=" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do (for /f "delims=" %%i in ('dir /ad/b/s "%%a"') do rd "%%~fi")
作者: lhm6686
时间: 2009-2-5 02:49
长见识了
作者: jy02116916
时间: 2009-2-5 11:13
谢谢netbenton提供的方法 不过你的命令可能有些问题 运行后提示找不到文件 我把我的命令改成这样就可以了。for命令嵌套的话问题还是挺多的。
@echo off
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype=3" get caption') do dir /ad/b/s "%%a\" | sort /r >>%temp%\dir.txt
for /f "delims=" %%i in (%temp%\dir.txt) do rd "%%~fi" 2>nul
del %temp%\dir.txt >nul
[
Last edited by jy02116916 on 2009-2-5 at 11:31 ]
作者: tempuser
时间: 2009-2-5 16:54
如何判断空文件夹呢?是通过
sort /r
命令吗?我在CMD下 sort /?没有看到 /r的具体解释,能给解释一下吗?
作者: tempuser
时间: 2009-2-5 16:59
标题: 知道了!
哈哈,我只看八楼代码!不清楚sort /r什么意思,竟然忽略了rd只能删除空目录,不好意思!
作者: netbenton
时间: 2009-2-5 20:55
标题: ^_^
正如楼上说的,rd只删除空目录,虽然提示出错,但是结果是对的,如果你不想看到错误提示,可以在后面加>nul