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

[文件操作] [讨论]批处理删除某文件夹之外的其它文件夹

删除某文件夹之外的其它文件,比如:\盘下,有很多文件夹,如Q、backup等,现在要求只保留QQ文件夹,如何实现?

PS:对于此问题,很多人都写了相关代码,但原理都几乎是:dir+echo+findstr
因为使用了findstr,效率方面打了折扣,欢迎大家积极讨论,给出更完美的解决方案

  1. @echo off&setlocal enabledelayedexpansion
  2. for /d %%i in (d:\*) do (
  3.     set v=%%i
  4.     set v=!v:~-2!
  5.     if !v! neq qq rd /s /q %%i
  6. )
  7. pause
复制代码

TOP

回复 2楼 的帖子

如果有个文件夹叫做q!q
你的代码是删不掉的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我不会写,在其他地方看到的话一定告诉你

TOP

减法不止一种:
  1. @echo off
  2. attrib /d -a&attrib /d +a .\QQ\
  3. for /f "delims=" %%a in ('dir /ad-a /b') do rd /s /q %%a
复制代码
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad /b^|findstr /v /x "QQ"') do rd /s /q %%a
复制代码
  1. @echo off
  2. move QQ\ ..\tmp\
  3. rd /s /q *
  4. move ..\tmp\ QQ\
复制代码
  1. @echo off
  2. ren QQ QQ..\
  3. rd /s /q *
  4. for %%a in (*\) do ren %%~sa QQ
复制代码
当然了,头两种比较常用,后两种只是写来玩玩,不过指不定什么时候就用上了

[ 本帖最后由 zm900612 于 2011-2-19 01:57 编辑 ]

TOP

以上言论均属纸上谈兵,未经测试,如有错误,欢迎指正
感觉用cacls应该也可以,和5楼第4种差不多

TOP

  1. @echo off
  2. set "D:\qq=a"
  3. for /f "delims=" %%i in ('dir /b D:\') do if not defined %%~fi rd "%%~fi"
  4. pause
  5. del "%~f0"
复制代码
有点悲剧,P文件得放在同一目录下
  1. wmic fsdir where "drive='d:' and path='\\' and filename<>'qq'" call delete
复制代码

[ 本帖最后由 wc726842270 于 2011-2-19 03:09 编辑 ]
1

评分人数

枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

不过得先说一句了,代码不要乱试,别人的电脑另算,呵呵(最起码得改一下,再试试)
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

顶7楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

TOP

返回列表