Board logo

标题: 一个保留某几个文件夹之外删除其它文件夹地程序 [打印本页]

作者: nbic     时间: 2007-6-1 19:31    标题: 一个保留某几个文件夹之外删除其它文件夹地程序

说明一下:在F:\下载文件夹里面,有子文件夹1、2、3、4、5。问题是保留1和2子文件夹。删除其余地三个文件夹。用下面地程序。只能保留1这个文件夹。其它地都删除了。。

for /f "skip=1 tokens=*" %%i in ('dir F:\下载\ /b /ad ^|find /v "F:\下载\1,2"') DO rd /s /q "F:\下载\%%i"
del F:\下载\*.* /a/q/f

各位帮忙看看。要达到保留子文件夹1和2地目的,该如何改改上面地程序呢?

先在此谢过!

[ Last edited by nbic on 2007-6-1 at 07:32 PM ]
作者: wudixin96     时间: 2007-6-1 22:16

for /f %%i in ('dir F:\下载\ /b /ad ^|findstr "[^12]"') DO rd /s /q %%i

作者: nbic     时间: 2007-6-1 23:03


  Quote:
Originally posted by wudixin96 at 2007-6-1 10:16 PM:
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr "[^12]"') DO rd /s /q %%i

刚才试了试。不行哦。。
作者: wudixin96     时间: 2007-6-2 00:19
根据楼主的思路。这个p是要放到F:\下载下执行的。

dir F:\下载\ /b /ad的结果是:

1
2
3
4
5
@echo off
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr "[^12]"') DO rd /s /q F:\下载\%%i
pause
[ Last edited by wudixin96 on 2007-6-2 at 12:23 AM ]
作者: terse     时间: 2007-6-2 00:27


  Quote:
Originally posted by wudixin96 at 2007-6-2 00:19:
根据楼主的思路。这个p是要放到F:\下载下执行的。

dir F:\下载\ /b /ad的结果是:

1
2
3
4
5

[code]@echo off
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr &quo ...

这个p是并不要放到F:\下载下执行
@echo off
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr "[^12]"') DO rd /s /q F:\下载\%%i
pause
作者: lxmxn     时间: 2007-6-2 00:29

@echo off
for /f %%a in ('dir /b/ad F:\下载\? ^| findstr /v "1 2"') do rd /s/q F:\下载\%%a
[ Last edited by lxmxn on 2007-6-2 at 05:53 PM ]
作者: nbic     时间: 2007-6-2 09:59
6楼的方法不错。。谢了。。
作者: qzwqzw     时间: 2007-6-2 10:54
这个太简单了
考虑复杂一些的

测试路径结构如下:
test
   - test1
   - test2
     - test21
     - test22
       - test221
   - test3
     - test31
       - test311
     - test32

要求:

删除test22和test311以外的所有文件夹
原目录结构保留
test221目录要删除
test31下的文件要删除
作者: xjzhf4     时间: 2008-3-7 11:01
呵呵,谢谢各位,学习了啊.........
作者: Li103Z     时间: 2008-4-11 16:38
我用 lxmxn版主的方法试了一下,在我的计算机就出现这样的错误:"findstr不是内部命令或外部命令,也不是可运行的程序或批处理文件",什么原因?请各位大侠帮助解答。是不是我的DOS版本问题呢?

[ Last edited by Li103Z on 2008-4-11 at 04:40 PM ]
作者: lxmxn     时间: 2008-4-13 06:53


  Quote:
Originally posted by Li103Z at 2008-4-11 16:38:
我用 lxmxn版主的方法试了一下,在我的计算机就出现这样的错误:"findstr不是内部命令或外部命令,也不是可运行的程序或批处理文件",什么原 ...

请说明你的运行环境。
作者: lyaa     时间: 2008-4-17 14:27
有空格肯定不行
作者: hahaxiao     时间: 2008-11-29 00:20
挺好用
作者: sea1112     时间: 2008-11-29 09:59


  Quote:
Originally posted by nbic at 2007-6-1 07:31 PM:
说明一下:在F:\下载文件夹里面,有子文件夹1、2、3、4、5。问题是保留1和2子文件夹。删除其余地三个文件夹。用下面地程序。只能保留1这个文件夹 ...

请把内容保存为“删除文件夹以外的文件夹和文件.bat”放到目录里运行

@echo off
::删除自己以外的所有文件
for %%a in (*) do (if "%%a" neq "删除文件夹以外的文件夹和文件.bat" del "%%a" /q)
::删除指定文件夹以外所有的文件夹
for /d %%b in (*) do (if "%%b" neq "1" if "%%b" neq "2"  rd "%%b" /q/s)
附件 1: 删除文件夹以外的文件夹和文件.bat.rar (2008-11-29 09:59, 359 bytes,下载次数: 26)

作者: sea1112     时间: 2008-11-29 10:08


  Quote:
Originally posted by lxmxn at 2007-6-2 12:29 AM:
@echo off
for /f %%a in ('dir /b/ad F:\下载\? ^| findstr /v "1 2"') do rd /s/q F:\下载\%%a
[ Last edited by lxmxn on 2007-6-2 at 05:53 PM ]

找不到文件
附件 1: all.jpg (2008-11-29 10:08, 46.61 K,下载次数: 2)



作者: sea1112     时间: 2008-11-29 10:12
晕,我自己搞错了。E盘了,他做的是F盘