Batch file 尝试从批处理文件运行VBS MsgBox

Batch file 尝试从批处理文件运行VBS MsgBox,batch-file,vbscript,ping,Batch File,Vbscript,Ping,我有一个批处理文件,代码如下: @echo off :START ping 192.168.9.19 -n 1 -w 1800000 > nul 2>&1 if errorlevel 1 taskkill /F /IM excel.exe > nul 2>&1 Timeout /t 1 > nul 2>&1 @set errorlevel = 0 GOTO START 我需要在errorlevel 1上添加一

我有一个批处理文件,代码如下:

   @echo off

:START

ping 192.168.9.19 -n 1 -w 1800000 > nul 2>&1


if errorlevel 1   taskkill /F /IM excel.exe > nul 2>&1



Timeout /t 1 > nul 2>&1
@set errorlevel = 0

GOTO START
我需要在errorlevel 1上添加一行以打开vbs消息框MsgBox.vbs

我尝试添加以下行,但不起作用:

wscript "C:\Users\James.Jayesuria\Desktop\MsgBox.vbs" < nul 2>&1

如果有人能帮我更正代码,以便弹出msgbox,我将不胜感激。当我仅使用该代码行运行bat文件时,会弹出错误消息,但当我尝试将其添加到网络代码时,该错误消息不起作用。

参数
-w 1800000
告诉ping命令等待1800000毫秒(=30分钟),然后在无法到达主机时失败

如果您有足够的耐心等待半小时,您将看到消息框。事实上,当ping成功时,您也会看到它,因为调用wscript命令的行是无条件执行的。如果您有多个只希望在条件errorlevel 1上执行的命令,则必须将它们包含在括号中

使用

  • 在ping中仅使用10秒的超时
  • 仅当ping失败时显示Messagebox
  • 您不需要重置errorlevel。这是自动发生的
  • 在ping尝试保存计算资源之间使用10秒的等待时间
当您在无法访问ip的情况下执行时,您必须等待10秒钟,然后才会显示消息框



谢谢你,这很有效。。当我单击“确定”一次时,您知道如何使msgbox不再显示吗。@StanJx在您的文件中使用变量。在文件开头将其设置为0。在显示消息后将其设置为1,在显示消息之前检查变量以查看它是0还是1。这是一个关于批处理文件的好教程。阅读所有章节:
@echo off

:START

ping 192.168.9.19 -n 1 -w 1800000 > nul 2>&1


if errorlevel 1   taskkill /F /IM excel.exe > nul 2>&1
wscript "C:\Users\James.Jayesuria\Desktop\MsgBox.vbs"


Timeout /t 1 > nul 2>&1
@set errorlevel = 0

GOTO START
@echo off

:START

REM Try to ping with timeout of 10 seconds
ping 192.168.9.19 -n 1 -w 10000 > nul 2>&1

REM When ping fails, kill excel and show messagebox
if errorlevel 1 ( 
    taskkill /F /IM excel.exe > nul 2>&1
    wscript "C:\Users\James.Jayesuria\Desktop\MsgBox.vbs"
)

REM Wait 10 seconds between ping attempts
Timeout /t 10 > nul 2>&1

GOTO START