www.姐姐要爱02com:请教一段批处理代码

来源:百度文库 编辑:高考问答 时间:2024/05/09 18:10:49
以下为代码的一部分
If errorlevel 1 @echo Msgbox "病毒侵入!请检查u盘病—毒!",vbInfomation,"Report" >.\check\Report.vbs Else goto :end
这句有什么问题呢?为什么执行时无论条件为真或假都会把前后两个命令都执行?

IF ERRORLEVEL :
上面的程序运行结束后要送返操作系统一个值,表明成功还是失败。这个值存放在变量ERRORLEVEL中。条件语句IF ERRORLEVEL 检查这个值,决定成功做什么,失败做什么。

my_prog_a
my_prog_b
if errorlevel ...

这个测试语句,检查my_prog_b 成功失败。
如果检查my_prog_a,则应当
my_prog_a
if errorlevel ...

代码请更改为:

If errorlevel 1 (
@echo Msgbox "病毒侵入!请检查u盘病—毒!",vbInfomation,"Report" >.\check\Report.vbs
) Else (
goto end
)

定向符“>”必须另起一行去写,使用括号可以使整个IF命令在意义上属于一行,但是每个括号中的命令又自属于一行。

标记符“:”不可以加入goto语句中。