标题: [文件操作] 如何删除除了指定文件夹外的所有文件和文件夹? [打印本页]
作者: 七剑下面条 时间: 2016-2-8 17:15 标题: 如何删除除了指定文件夹外的所有文件和文件夹?
如图,我只想保留红框里面的内容,剩下的文件和文件夹都删除,该如何操作,谢谢大家
作者: ivor 时间: 2016-2-8 17:29
rd /?
作者: 七剑下面条 时间: 2016-2-8 19:09
本帖最后由 七剑下面条 于 2016-2-8 19:11 编辑
回复 2# ivor
额.. 我想说的是一种类型的情况
比如删除某目录下除 A B C文件夹之外的所有文件和文件夹该怎么做呢
作者: ivor 时间: 2016-2-9 09:48
本帖最后由 ivor 于 2016-2-9 09:53 编辑
- @echo off&SETLOCAL enabledelayedexpansion
- rem 要排除的文件夹名字放在exception变量里面,使用“;”分割
- set "exception=UPX v3.91;大神绘画刷分器;C语言经典100例_files"
- for /f "delims=" %%a in ('dir /ad /b') do (
- rem bool重新赋值标志删除,false为不删除标志
- set bool=true
- for /f "delims=; tokens=1-2" %%i in ("%exception%") do (
- if "%%a"=="%%i" (
- set bool=false
- break
- )
- if "%%a"=="%%j" (
- set bool=false
- break
- )
- rem **********
- rem 这量添加要比较的if语句
- rem **********
- )
- rem 测试没问题替换下面echo %%a,!bool!为rd "%%a /s"
- if !bool!==true echo %%a,!bool!
-
- )
- pause
复制代码
如果把排除的文件夹名字保存在一个txt里面,代码会精简很多,楼主自己选择
作者: 七剑下面条 时间: 2016-2-9 20:04
回复 4# ivor
那如果我创建一个 保留文件夹.txt 那之后该怎么操作呢
作者: ivor 时间: 2016-2-10 10:03
本帖最后由 ivor 于 2016-2-10 12:16 编辑
- @echo off&SETLOCAL enabledelayedexpansion
- for /f "delims=" %%a in ('dir /ad /b') do (
- rem bool重新赋值标志删除,false为不删除标志
- set bool=true
- for /f "delims=" %%i in ('more /e +16 "%~dpf0"') do (
- echo %%i
- if "%%a"=="%%i" (
- set bool=false
- break
- )
- )
- rem 测试没问题替换下面echo %%a,!bool!为rd "%%a" /s /q
- if !bool!==true rd "%%a" /s /q
- )
- pause
复制代码
换了个思路,保存在本批处理pause下面就可以了,
每个文件夹列表占用一行
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |