中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 用IF EXIST多条件判断 上一主题 | 下一主题
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『楼 主』:  用IF EXIST多条件判断

IF EXIST 后面要判断2个条件因该怎么用啊
比如
IF EXIST "C:\DOCUME~1\admin\桌面\这里我要判断2个条件,不知道要怎么判断

2008-3-15 13:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 2 楼』:  

用两个IF EXIST了
IF EXIST "XXXXX" IF EXIST "XXXXX1"



QQ:366840202
http://chenall.net
2008-3-15 13:13
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  

不知道你要判断两个什么条件,是如发现A怎么怎么样,如发现B怎么怎么样, 如两个都发现怎么怎么样,如两个都没发现又怎么怎么样吗?如是这样,可以借用以下语句:
if exist a (
            if exist b (
                         echo a and b is find
             ) else (
                      echo a is find b is not find
                      )
) else (
         echo a is not find
         )
     也不知道是你想要的不(就是不能判别A不在B在的情况),本人English不怎么样,可别见笑哦,如还不明白看看这里吧http://www.cn-dos.net/forum/viewthread.php?tid=38480&fpage=2,希望能帮到你了。

[ Last edited by zw19750516 on 2008-3-15 at 06:43 PM ]

2008-3-15 18:07
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『第 4 楼』:  

谢谢大家的回复,我的意思就是2楼所说的一样
,两个都发现执行一个结果,我就是想问下
用一条IF EXIST 语句能不能实现
如果需要2条的话帮忙举个例子 谢谢

2008-3-15 18:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  

  一个EXIST肯定是不行的,不知道你坚持用一个EXIST有何含义,再说了你要一句实现,我上面的就是一句啊,可以改写下:
if exist a ( if exist b ( echo a and b is find ) else (  goto :eof ) ) else ( goto :eof )
     只有发现A和B都在时,执行一个命令:echo a and  b is find,否则就结束命令。

[ Last edited by zw19750516 on 2008-3-15 at 07:25 PM ]

2008-3-15 19:22
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

饭要一口一口吃,路要一步一步走

set xxx=没有
if exist a set xxx=有
if exist b set xxx=有
最原始的代码最可靠



第一高手    第二高手

2008-3-16 01:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『第 7 楼』:  

谢谢fastslz的指导
我这人比较笨不知道我这样理解你给出的命令是不是正确的
你是用SET定义好变量 然后再用 IF EXIST 直接判断是吗
因为对SET命令一直用不好,还有很多地方不明白,还请帮忙举个里子好吗,这样我就更好理解点
比如:我有5台电脑,一些电脑桌面上有QQ.LNK ;一些有QQ腾迅.LNK,还有些没有
我想让他门自己判断,然后只要有QQ的就不复制过去,没有的就复制过去
我是这样写的:@echo off
if exist c:\admin\桌面\QQ.LNK goto a
if exist c:\admin\桌面\QQ腾迅.LNK goto a
xcopy d:\qq\qq.lnk  c:\admin\桌面\
:a
end

还请您帮忙用你给的方法写下

[ Last edited by jy02141405 on 2008-3-17 at 10:53 AM ]

2008-3-17 01:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 8 楼』:  

完全用通配符
if not exist "%USERPROFILE%\桌面\*QQ*.lnk" xcopy /y "d:\qq\qq.lnk" "%USERPROFILE%\桌面\"
另一种方法
dir "%USERPROFILE%\桌面\*QQ*.lnk" >nul 2>nul||xcopy /y "d:\qq\qq.lnk" "%USERPROFILE%\桌面\"




第一高手    第二高手

2008-3-17 09:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『第 9 楼』:  

谢谢fastslz的再次恢复,但是用你刚才说的方法在一种情况下会桌面上会出现2个QQ

比如一台机子桌面上是QQ腾迅.lnk,你的命令就会复制一个QQ.lnk过去。
我现在就是想知道下你用SET命令怎么完成这个

2008-3-17 10:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 10 楼』:  

"%USERPROFILE%\桌面" 当前使用者桌面
"%ALLUSERSPROFILE%\桌面" 全部使用者桌面
所以会出现2个快捷方式
如果你全部用这个代码复制的.lnk,以后就不会出现2个的快捷方式。(说白了这是标准方法)



第一高手    第二高手

2008-3-17 11:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『第 11 楼』:  

谢谢 fastslz
现在搞明白了,
你能不能再帮忙用SET举个简单的例子啊

2008-3-17 12:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 12 楼』:  

@echo off
set xxx=没有
if exist a set xxx=有
if exist b set xxx=有
if "%xxx%"=="没有" (echo 没有) else echo 有

   此帖被 +1 点积分    点击查看详情   
评分人:【 jy02141405 分数: +1  时间:2008-3-17 22:46




第一高手    第二高手

2008-3-17 13:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『第 13 楼』:  

fastslz谢谢你的例子,终于搞明白了```
真的非常感谢

2008-3-17 22:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jy02141405
初级用户





积分 97
发帖 34
注册 2007-11-16
状态 离线
『第 14 楼』:  

。。。。。麻烦你再帮我看下我的代码哪错了
@echo off
set e=没有
if exist c:\docume~1\admin\桌面\qq.lnk set e=有
if exist c:\docume~1\admin\桌面\qq腾迅.lnk set e=有
if "%e%"=="没有"(xcopy E:\tools\dzh\internet\qq.lnk c:\docume~1\admin\桌面\) else end

2008-3-17 23:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 15 楼』:  

@echo off
set e=没有
if exist "c:\docume~1\admin\桌面\qq.lnk" set e=有
if exist "c:\docume~1\admin\桌面\qq腾迅.lnk" set e=有
if "%e%"=="没有"(xcopy "E:\tools\dzh\internet\qq.lnk" "c:\docume~1\admin\桌面\") else exit

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


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



论坛跳转: