|
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 来自 福建泉州
状态 离线
|
|
2008-3-15 13:13 |
|
|
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 |
|
|
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 |
|
|
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 有
|

第一高手 第二高手
我的小站
 |
|
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 |
|