玩批处理见鬼了,高难度问题

大家好,最近在学习批处理遇到个奇怪的问题..现贴出代码如下:@echooff@ifexistc:\temp11.vbsgotorebotecho错误pause:rebot... 大家好,最近在学习批处理遇到个奇怪的问题..现贴出代码如下:

@echo off

@if exist c:\temp11.vbs goto rebot
echo 错误
pause

:rebot
echo 正确
pause

大家可以试试保存为bat文件运行后,如果你的C盘没有temp11.vbs这个文件,那么他会提示错误,然后按任意键继续,我们在按键后,又提示正确,这说明程序的IF判断语句根本就没效果了.真是见了鬼了.那等于:rebot后面的语句又给运行了一次,怎么会这样呢..

我知道有个方法是在第一个pause后面加一句exit..但是我希望不要加这句,有什么更好的解决方式啊。谢谢大家...问题解决再追加20分..
展开
 我来答
q5331006
2008-08-21 · TA获得超过496个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:517万
展开全部
不是批处理见鬼了,而是你写的代码有问题
@if exist c:\temp11.vbs goto rebot
echo 错误
pause

问题出在这,如果存在 c:\temp11.vbs 的话,就只会显示正确,但如果不存在的话,肯定显示错误,然后再继续执行
:rebot
echo 正确
pause
这三句代码。
你可以这样修改:
@echo off

@if exist c:\temp11.vbs goto rebot
echo 错误
pause
goto eof

:rebot
echo 正确
pause
wewoo
2008-08-21 · TA获得超过2973个赞
知道小有建树答主
回答量:790
采纳率:0%
帮助的人:852万
展开全部
楼上的说对了.
确实是因为echo 错误以后没有及时跳转到结尾

@echo off

if exist c:\temp11.vbs goto rebot
echo 错误
pause
goto eof

:rebot
echo 正确
pause

最优化的办法:
@echo off

if exist c:\temp11.vbs if not exist c:\temp11.vbs\ goto rebot
echo 错误
pause
goto eof

:rebot
echo 正确
pause

否则如果那里有一个文件夹,名字叫temp.vbs那你就错完了."c:\temp11.vbs\" 进一步确认是否文件夹
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wudits2004
2008-09-02 · TA获得超过107个赞
知道答主
回答量:338
采纳率:0%
帮助的人:261万
展开全部
很简单的代码啊,为什么要写这么麻烦呢?
我以前写代码老是很烦琐,后来慢慢的简化了,能省则省
这样:
@echo off
if exist c:\temp11.vbs (echo 正确) else (echo 错误)
pause>nul
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式