windows - 如果错误级别不为零,如何在批处理文件中执行命令?

标签 windows batch-file vbscript cmd

我创建了一个简单的批处理文件,使我能够连接到互联网。
我是这样做的-如果连接成功,则使用 VBscript 显示一条消息,说明“连接成功”,如果未建立连接,则显示一条消息,说明“连接失败”。我使用 if-else 语句和 errorlevel 命令完成了此操作,但我无法使用“errorlevel == 1”命令显示失败消息。我的意思是如果连接过程中出现错误,则会显示成功消息而不是失败信息。

这是我的批处理文件中的代码。

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
)

最佳答案

线路

if errorlevel == 0 do-something

不是有效语法。基于一些快速测试,命令处理器似乎正在将其重新解释为

if errorlevel 0 do-something

意思是“如果错误级别至少 0 做某事”。

相反,我建议

if %ERRORLEVEL% EQU 0 do-something

使用百分号版本可以让您测试是否相等,还可以正确处理返回值为负的情况。

关于windows - 如果错误级别不为零,如何在批处理文件中执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29714466/

相关文章:

javascript - Windows Scripting Host 中的 FTP 文件?

testing - vbscript 测试 ftp 连接

powershell - Windows 期望命令等效

java - ProcessBuilder 无法运行路径中包含空格的 bat 文件

c++ - 将 d3d11 包含到代码块

windows - 如何在 Perl 中线程安全地设置 STDOUT 编码?

windows - 如何使用批处理按字符串过滤txt文件

java - Visual Basic 或 VBScript 作为 Java 脚本引擎

windows - 在 Windows 上将 docker compose 更新到 1.8

python - 如何在 Python 上生成 DOT 语言输出