标题: 用IF EXIST多条件判断
[打印本页]
作者: jy02141405
时间: 2008-3-15 13:00
标题: 用IF EXIST多条件判断
IF EXIST 后面要判断2个条件因该怎么用啊
比如
IF EXIST "C:\DOCUME~1\admin\桌面\这里我要判断2个条件,不知道要怎么判断
作者: chenall
时间: 2008-3-15 13:13
用两个IF EXIST了
IF EXIST "XXXXX" IF EXIST "XXXXX1"
作者: bat-zw
时间: 2008-3-15 18:07
不知道你要判断两个什么条件,是如发现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 ]
作者: jy02141405
时间: 2008-3-15 18:58
谢谢大家的回复,我的意思就是2楼所说的一样
,两个都发现执行一个结果,我就是想问下
用一条IF EXIST 语句能不能实现
如果需要2条的话帮忙举个例子 谢谢
作者: bat-zw
时间: 2008-3-15 19:22
一个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 ]
作者: fastslz
时间: 2008-3-16 01:02
饭要一口一口吃,路要一步一步走
set xxx=没有
if exist a set xxx=有
if exist b set xxx=有
最原始的代码最可靠
作者: jy02141405
时间: 2008-3-17 01:21
谢谢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 ]
作者: fastslz
时间: 2008-3-17 09:22
完全用通配符
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%\桌面\"
作者: jy02141405
时间: 2008-3-17 10:52
谢谢fastslz的再次恢复,但是用你刚才说的方法在一种情况下会桌面上会出现2个QQ
比如一台机子桌面上是QQ腾迅.lnk,你的命令就会复制一个QQ.lnk过去。
我现在就是想知道下你用SET命令怎么完成这个
作者: fastslz
时间: 2008-3-17 11:13
"%USERPROFILE%\桌面" 当前使用者桌面
"%ALLUSERSPROFILE%\桌面" 全部使用者桌面
所以会出现2个快捷方式
如果你全部用这个代码复制的.lnk,以后就不会出现2个的快捷方式。(说白了这是标准方法)
作者: jy02141405
时间: 2008-3-17 12:52
谢谢 fastslz
现在搞明白了,
你能不能再帮忙用SET举个简单的例子啊
作者: fastslz
时间: 2008-3-17 13:31
@echo off
set xxx=没有
if exist a set xxx=有
if exist b set xxx=有
if "%xxx%"=="没有" (echo 没有) else echo 有
作者: jy02141405
时间: 2008-3-17 22:47
fastslz谢谢你的例子,终于搞明白了```
真的非常感谢
作者: jy02141405
时间: 2008-3-17 23:23
。。。。。麻烦你再帮我看下我的代码哪错了
@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
作者: moniuming
时间: 2008-3-18 13:10
@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
作者: jy02141405
时间: 2008-3-18 20:55
加了双引号以后,桌面上没QQ的机子也不会复制快捷方式过去。。。
作者: zqz0012005
时间: 2008-3-20 06:28
Re LS:
使用短文件名时不必再加引号
除LS所述的“exit”问题,if "%e%"=="没有"(…)这里条件与命令之间应该用空格隔开