![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-26 01:26 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [提问]如何删除除指定目录以外的所有目录? |
| 可打印版本 5,050 / 24 |
| 第1楼 Bee | 发表于 2006-09-28 08:27 |
| 初级用户 发帖 16 积分 44 来自 广东省 | |
|
[提问]如何删除除指定目录以外的所有目录? 我想册除一个目录下面的文件夹和文件:
例如:目录F:\下面有3个文件夹1,2,3,我想保留这三个然后其它的全部册除!请各位高人多多提点本人不胜感激同时也为广大同等级的小辈们一个学习机会。:) ——————————俺是分割线—————————— ********************************* 版务记录 ********************************* 操作: 更改标题 原因: 原格式不符版规 原标题: 初入江湖,又遇大难题。请各位 功力深厚在大侠们进来帮帮戼/span> 执行: 3742668 处罚: 初犯,赦之。 备注: 1.建议发贴前看看置顶版规 2.如何更改标题? 点击所发贴右下角的编辑——---------------------------------------------———————————★ 按钮,然后进行编辑。 ↓ ********************************** [ Last edited by 3742668 on 2006-9-29 at 10:22 ] |
|
| 第2楼 vkill | 发表于 2006-09-28 08:33 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
dir findstr /v del 我是这样想的
|
|
| 第3楼 smileseeker | 发表于 2006-09-28 09:19 |
| 中级用户 发帖 83 积分 316 | |
| 第4楼 3742668 | 发表于 2006-09-29 02:19 |
| 荣誉版主 发帖 718 积分 2,013 | |
| 第5楼 redtek | 发表于 2006-09-29 06:59 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
版主这个“X”参数玩得真漂亮~:)
利害~:) 学到很多东西~:) |
|
| 第6楼 redtek | 发表于 2006-09-29 07:02 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
越来越发现光看代码是没用的,
一边看一边分析也不行, 还要亲自再试一回,一边试一边想,才真学到东西了~:) |
|
| 第7楼 Bee | 发表于 2006-09-29 09:37 |
| 初级用户 发帖 16 积分 44 来自 广东省 | |
|
谢谢这么多位的指导我会借你们的思路去好好研究下的!
|
|
| 第8楼 piziliu2004 | 发表于 2006-09-29 22:24 |
| 中级用户 发帖 139 积分 321 | |
|
@echo off
for /f "delims=" %%i in ('dir/ad/b') do ( if /i not "%%i" == "1" rd %%i if /i not "%%i" == "2" rd %%i if /i not "%%i" == "3" rd %%i ) 我在当前目录下执行批处理。为什么这样不行呢?。 它delete所有目录了。 |
|
| 第9楼 zh159 | 发表于 2006-09-29 22:31 |
| 金牌会员 发帖 1,467 积分 3,687 | |
Originally posted by piziliu2004 at 2006-9-29 10:24: 当搜索到“1”时:if /i not "%%i" == "1" rd %%i,删除除“1”以外的文件夹(包含2、3) 当搜索到“2”时:if /i not "%%i" == "2" rd %%i,删除除“2”以外的文件夹(包含1、3) 当搜索到“3”时:if /i not "%%i" == "3" rd %%i,删除除“3”以外的文件夹(包含1、2) 想象还剩下什么??? |
|
| 第10楼 piziliu2004 | 发表于 2006-09-29 23:01 |
| 中级用户 发帖 139 积分 321 | |
|
@echo off
for /f "delims=" %%i in ('dir/ad/b') do ( if /i "%%i" == "1" goto END if /i "%%i" == "2" goto END if /i "%%i" == "3" goto END rd %%i :END ) 还有怎么会包错了。 |
|
| 第11楼 piziliu2004 | 发表于 2006-09-29 23:08 |
| 中级用户 发帖 139 积分 321 | |
|
用这种方法实现。。。。。。成功
setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir/ad/b') do ( set /a pathfolder=%%i if !pathfolder! GTR 3 rd %%i ) 上面的问题: 批处理()里边不能用: 标注释么 |
|
| 第12楼 zh159 | 发表于 2006-09-30 00:39 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
两个单字节的“::”冒号
|
|
| 第13楼 piziliu2004 | 发表于 2006-09-30 02:06 |
| 中级用户 发帖 139 积分 321 | |
|
这样?。不行。 能不详细指点一下代码
for /f "delims=" %%i in ('dir/ad/b') do ( if /i "%%i" == "1" goto :END if /i "%%i" == "2" goto :END if /i "%%i" == "3" goto :END rd %%i ::END ) |
|
| 第14楼 zh159 | 发表于 2006-09-30 02:27 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
注释是两个单字节的“::”冒号,标签才是一个单字节的“:”冒号
|
|
| 第15楼 9527 | 发表于 2006-09-30 02:52 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
@echo off
for /f "delims=" %%i in ('dir /ad /b') do ( if not "%%i"=="1" if not "%%i"=="2" if not "%%i"=="3" call :ii "%%i" ) goto :eof :ii echo %1 goto :eof |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |