我创建了一个简单的批处理文件,可以让我连接到互联网 我这样做了 - 如果连接成功,会显示一条消息,说明"连接成功"使用VBscript并显示一条消息,说明"连接失败"如果没有建立连接。我使用if-else语句和errorlevel命令创建了这个,但是我无法使用' errorlevel == 1'来显示失败消息。 command。我的意思是如果连接过程中出现错误,则显示成功消息而不是失败消息。
这是我的批处理文件中的代码。
rasdial "TATA PHOTON+" internet
@echo off
if ERRORLEVEL == 0 (echo MSGBOX "Connection successfully established to TATA PHOTON+" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q)
else if ERRORLEVEL == 1 (echo MSGBOX "ERROR: Unable to establish connection" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
)
答案 0 :(得分:2)
这条线
if errorlevel == 0 do-something
是无效的语法。根据一些快速测试,命令处理器似乎将其重新解释为
if errorlevel 0 do-something
表示“如果errorlevel 至少 0做某事”。
相反,我建议
if %ERRORLEVEL% EQU 0 do-something
使用百分号版本可以测试相等性,还可以正确处理返回值为负的情况。
答案 1 :(得分:1)
if errorlevel == 1
将字符串errorlevel
与字符串1
进行比较,并且由于某种原因发现它们不匹配。
你需要
if %errorlevel% == 1 dosomething
或
if errorlevel 1 dosomething
如果errorlevel
为1 或大于1 ,则第二种方法将执行 dosomething
因此,if errorlevel 0 dosomething
总是 dosomething。(但是有一些方法可以将`errorlevel设置为负数。通常不会遇到这种情况。)
答案 2 :(得分:1)
尝试类似的东西:
rasdial "TATA PHOTON+" internet
@echo off
IF %ERRORLEVEL% EQU 0 (
Goto :sucess
) else (
GoTo :Fail
)
::****************************************************************************************
:sucess
(echo MSGBOX "Connection successfully established to TATA PHOTON+",VbInformation,"Connection successfully established to TATA PHOTON+" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
)
Exit /b
::****************************************************************************************
:Fail
(echo MSGBOX "ERROR: Unable to establish connection",vbCritical,"ERROR: Unable to establish connection" > %temp%\TEMPmessage.vbs
call %temp%\TEMPmessage.vbs
del %temp%\TEMPmessage.vbs /f /q
)
Exit /b
::****************************************************************************************