中国DOS联盟论坛

中国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
http://www.cn-dos.net/forum/viewthread.php?tid=23404&fpage=1


找个对你应该有帮助 结合楼上的 /v
第4楼 3742668 发表于 2006-09-29 02:19
荣誉版主 发帖 718 积分 2,013
不光要/v还要/x:

1.建议把rd语句换成echo f:\%i先看看执行结果再确定是否删除。
2.以上代码未经测试。
参考链接:怎么写出这样的批处理..谢谢
第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:
@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" = ...

当搜索到“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