标题: [文件操作] [已解决]批处理如何删除某目录下除了指下的两个文件外的全部文件? [打印本页]
作者: wolfan 时间: 2011-7-23 16:58 标题: [已解决]批处理如何删除某目录下除了指下的两个文件外的全部文件?
本帖最后由 wolfan 于 2011-7-26 17:12 编辑
-xxx
+a.txt
-filebox
++abc.exe
+b.txt
+e.exe
+d.ttf
+j.jpg
+g.gif
+号为文件,-号为目录
除了 a.txt 与 filebox及里面的abc.exe 不删除外其它多删除掉。
只用一条命令~
作者: CrLf 时间: 2011-7-23 19:34
本帖最后由 CrLf 于 2011-7-24 21:53 编辑
- del /s /a /q /f *.* 3>>a.txt 5>>filebox\abc.exe
复制代码
作者: CUer 时间: 2011-7-23 20:16
回复 2# CrLf
好方法,向版主学习。
作者: tmplinshi 时间: 2011-7-23 21:47
回复 2# CrLf
好方法,向版主学习。
作者: mxxcgzxxx 时间: 2011-7-24 10:05
回复 2# CrLf
一开始我也没看懂,以为DEL句柄有什么特别这处,原来是拒绝访问,很强大也
作者: wolfan 时间: 2011-7-24 16:58
CrLf 发表于 2011-7-23 19:34
如果我File目录下有N个文件,那不是要写好多次~
还有,目录下有N个文件夹的情况DEL不是就没用了吗~
作者: CrLf 时间: 2011-7-24 22:14
回复 6# wolfan
多个文件可以启动外部命令占用嘛,理论上可以占用无数个文件,不过效率很低,而且不符合只用一条命令的要求(当然如果有人非要把 cmd /c 后跟一串命令参数说成是一条命令,我也没话说...)。要想用一条命令就只能用 wmic datafile 了,这我也不熟,还是等别人回答或者自行百度吧,记得找到了贴上来分享下~
不过 wmic 的代码将十分冗长,而且有可能不够通用,这时候文件不是特别多的话建议用 for /f ... in ('dir /a /s /b^|findstr /vxlg:list.txt') do ...
xcopy /l /exculde 虽然也可以按照列表筛选文件,但是它是通配匹配,而且不会单独显示符合条件的文件夹路径
至于通过 attrib 进行文件、文件夹筛选,虽然可以,但是效率实在太低了。
至于文件夹,我只是按楼主当初的要求给出最合适的解决方案,你怎么可能指望一个方案既简洁高效,又无所不能呢...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |