![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 19:51 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 用IF EXIST多条件判断 |
| 可打印版本 3,829 / 16 |
| 第1楼 jy02141405 | 发表于 2008-03-15 13:00 |
| 初级用户 发帖 34 积分 97 | |
|
用IF EXIST多条件判断 IF EXIST 后面要判断2个条件因该怎么用啊
比如 IF EXIST "C:\DOCUME~1\admin\桌面\这里我要判断2个条件,不知道要怎么判断 |
|
| 第2楼 chenall | 发表于 2008-03-15 13:13 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
用两个IF EXIST了
IF EXIST "XXXXX" IF EXIST "XXXXX1" |
|
| 第3楼 bat-zw | 发表于 2008-03-15 18:07 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
不知道你要判断两个什么条件,是如发现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 ] |
|
| 第4楼 jy02141405 | 发表于 2008-03-15 18:58 |
| 初级用户 发帖 34 积分 97 | |
|
谢谢大家的回复,我的意思就是2楼所说的一样
,两个都发现执行一个结果,我就是想问下 用一条IF EXIST 语句能不能实现 如果需要2条的话帮忙举个例子 谢谢 |
|
| 第5楼 bat-zw | 发表于 2008-03-15 19:22 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
一个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 ] |
|
| 第6楼 fastslz | 发表于 2008-03-16 01:02 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
饭要一口一口吃,路要一步一步走
set xxx=没有 if exist a set xxx=有 if exist b set xxx=有 最原始的代码最可靠 |
|
| 第7楼 jy02141405 | 发表于 2008-03-17 01:21 |
| 初级用户 发帖 34 积分 97 | |
|
谢谢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 ] |
|
| 第8楼 fastslz | 发表于 2008-03-17 09:22 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
完全用通配符
另一种方法 |
|
| 第9楼 jy02141405 | 发表于 2008-03-17 10:52 |
| 初级用户 发帖 34 积分 97 | |
|
谢谢fastslz的再次恢复,但是用你刚才说的方法在一种情况下会桌面上会出现2个QQ
比如一台机子桌面上是QQ腾迅.lnk,你的命令就会复制一个QQ.lnk过去。 我现在就是想知道下你用SET命令怎么完成这个 |
|
| 第10楼 fastslz | 发表于 2008-03-17 11:13 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
"%USERPROFILE%\桌面" 当前使用者桌面
"%ALLUSERSPROFILE%\桌面" 全部使用者桌面 所以会出现2个快捷方式 如果你全部用这个代码复制的.lnk,以后就不会出现2个的快捷方式。(说白了这是标准方法) |
|
| 第11楼 jy02141405 | 发表于 2008-03-17 12:52 |
| 初级用户 发帖 34 积分 97 | |
|
谢谢 fastslz
现在搞明白了, 你能不能再帮忙用SET举个简单的例子啊 |
|
| 第12楼 fastslz | 发表于 2008-03-17 13:31 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
@echo off
set xxx=没有 if exist a set xxx=有 if exist b set xxx=有 if "%xxx%"=="没有" (echo 没有) else echo 有 |
|
| 第13楼 jy02141405 | 发表于 2008-03-17 22:47 |
| 初级用户 发帖 34 积分 97 | |
|
fastslz谢谢你的例子,终于搞明白了```
真的非常感谢 |
|
| 第14楼 jy02141405 | 发表于 2008-03-17 23:23 |
| 初级用户 发帖 34 积分 97 | |
|
。。。。。麻烦你再帮我看下我的代码哪错了
@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 |
|
| 第15楼 moniuming | 发表于 2008-03-18 13:10 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
@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 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |