中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [提问]如何删除除指定目录以外的所有目录?
« [1] [2] »
作者:
标题: [提问]如何删除除指定目录以外的所有目录? 上一主题 | 下一主题
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『第 16 楼』:  

批处理的if语句 的“or” 操作是您上面的代码。空格 连接几个if 语句。。。如下  如果是”and“操作的if语句用什么连接呢?  

if not "%%i"=="1" if not "%%i"=="2" if not "%%i"=="3" call



知识在于不断积累
2006-9-30 03:57
查看资料  发送邮件  发短消息 网志  OICQ (16750931)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 17 楼』:  

  if not "%%i"=="1" if not "%%i"=="2" if not "%%i"=="3" 的意思是 如果 %%i 不等于1,也不等于2,同时也不等于3,那么就……,其实几个 if 条件并列就表示 "and" 操作。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-9-30 06:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『第 18 楼』:  

赫赫。。发颠倒了。。。。。。“or” 操作是?



知识在于不断积累
2006-9-30 07:04
查看资料  发送邮件  发短消息 网志  OICQ (16750931)  编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 19 楼』:  

版主说的对, 三个if表示三个串联的条件判断, 如果三个条件都成立就执行命令. 只要一个判断不成立将不执行call命令.

2006-9-30 07:05
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
Bee
初级用户




积分 44
发帖 16
注册 2006-9-23
来自 广东省
状态 离线
『第 20 楼』:  

9层大哥说的没错啊。。保存一的时候2。3都没了,哪里还能找到2。3呢?

2006-9-30 08:02
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (94689558)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by piziliu2004 at 2006-9-30 07:04:
赫赫。。发颠倒了。。。。。。“or” 操作是?

  or 操作可以有两种格式:

  1、用 if 的嵌套格式:
if "%%i"=="1" (command1) else (if "%%i"=="2" (command1) else (if "%%i"=="3" command1))
  这种方法的流程是:如果 %%i 等于1,则执行command1,否则,再判断 %%i 是否等于2,等于2则执行command1,不等于2再判断是否等于3,如果等于3就执行command1……还可以用 else 继续接下去。

  2、用顺序排列的几个if语句:
if "%%i"=="1" command1
if "%%i"=="2" command1
if "%%i"=="3" command1
……
  这种方法的流程是:如果%%i 等于1,执行command1,否则,忽略command1操作;然后再执行下一句,判断%%i 是否等于2,如果等于2的话就执行command1,不等于2的话就忽略这个语句上的command1;然后再执行下一句……但是一个数不可能同时为两个或两个以上的值,所以如此排列的 if 条件只可能有一个成立,也就只会执行一次command1了。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-9-30 11:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 22 楼』:  

3.if...else...if
    if xxx == ??? ( command1
                       ) else (
                                 if xxx == ???  command2
                                 command3
                                )


2006-9-30 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mayamason
初级用户





积分 46
发帖 19
注册 2006-9-28
状态 离线
『第 23 楼』:  

在图形界面里用反选功能也可以实现,而且很简单啊.

2006-10-7 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yayumyself
初级用户





积分 36
发帖 14
注册 2006-9-6
状态 离线
『第 24 楼』:  

这个帖子受益匪浅!

2007-6-21 16:21
查看资料  发送邮件  发短消息 网志  OICQ (313919108)  编辑帖子  回复  引用回复
cndidong
新手上路





积分 14
发帖 7
注册 2007-2-17
状态 离线
『第 25 楼』:  

我觉得还是15楼的代码比较好。。。

2008-2-15 12:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: