找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28933|回复: 5

[文件操作] 如何删除除了指定文件夹外的所有文件和文件夹?

[复制链接]
发表于 2016-2-8 17:15:21 | 显示全部楼层 |阅读模式
如图,我只想保留红框里面的内容,剩下的文件和文件夹都删除,该如何操作,谢谢大家
发表于 2016-2-8 17:29:52 | 显示全部楼层
rd /?
 楼主| 发表于 2016-2-8 19:09:01 | 显示全部楼层
本帖最后由 七剑下面条 于 2016-2-8 19:11 编辑

回复 2# ivor
额.. 我想说的是一种类型的情况

比如删除某目录下除 A B C文件夹之外的所有文件和文件夹该怎么做呢
发表于 2016-2-9 09:48:45 | 显示全部楼层
本帖最后由 ivor 于 2016-2-9 09:53 编辑
  1. @echo off&SETLOCAL enabledelayedexpansion
  2. rem 要排除的文件夹名字放在exception变量里面,使用“;”分割
  3. set "exception=UPX v3.91;大神绘画刷分器;C语言经典100例_files"
  4. for /f "delims=" %%a in ('dir /ad /b') do (
  5.         rem bool重新赋值标志删除,false为不删除标志
  6.         set bool=true
  7.         for /f "delims=; tokens=1-2" %%i in ("%exception%") do (
  8.                 if "%%a"=="%%i" (
  9.                 set bool=false
  10.                 break
  11.                 )
  12.                 if "%%a"=="%%j" (
  13.                 set bool=false
  14.                 break
  15.                 )
  16.                 rem **********
  17.                 rem 这量添加要比较的if语句
  18.                 rem **********
  19.         )
  20.         rem 测试没问题替换下面echo %%a,!bool!为rd "%%a /s"
  21.         if !bool!==true echo %%a,!bool!
  22.        
  23. )
  24. pause
复制代码
如果把排除的文件夹名字保存在一个txt里面,代码会精简很多,楼主自己选择
 楼主| 发表于 2016-2-9 20:04:19 | 显示全部楼层
回复 4# ivor


    那如果我创建一个 保留文件夹.txt  那之后该怎么操作呢
发表于 2016-2-10 10:03:21 | 显示全部楼层
本帖最后由 ivor 于 2016-2-10 12:16 编辑
  1. @echo off&SETLOCAL enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /ad /b') do (
  3.         rem bool重新赋值标志删除,false为不删除标志
  4.         set bool=true
  5.         for /f "delims=" %%i in ('more /e +16 "%~dpf0"') do (
  6.                 echo %%i
  7.                 if "%%a"=="%%i" (
  8.                 set bool=false
  9.                 break
  10.                 )               
  11.         )
  12.         rem 测试没问题替换下面echo %%a,!bool!为rd "%%a" /s /q
  13.         if !bool!==true rd "%%a" /s /q
  14. )
  15. pause
复制代码
换了个思路,保存在本批处理pause下面就可以了,
每个文件夹列表占用一行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:24 , Processed in 0.017425 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表