1

Message.bat:

@echo off
Start "" WScript //Nologo Message.vbs "Message 1" 0
Start "" WScript //Nologo Message.vbs "Message 2" 0
Start "" WScript //Nologo Message.vbs "Message 3" 0

Message.vbs:

Do While (msgbox is open?)
WScript.Sleep(500)
Loop
Message = Replace(WScript.Arguments(0),"\n",vbNewLine)
WScript.Quit MsgBox(Message,WScript.Arguments(1))

Как проверить, открыт ли уже msgbox?
WshShell.AppActivate("Изменение системных настроек") не работает.
Моя цель состоит в том, чтобы MsgBoxs появлялись по одному (а не все вместе, как это происходит), не приостанавливая выполнение пакета (пакет должен закрываться мгновенно после открытия).
Другими словами, я хочу такой же эффект как:

Purpose.bat

@echo off
msg * Message 1
msg * Message 2
msg * Message 3

1 ответ1

0

Вы можете использовать команду Start с переключателем /Wait

@echo off
Start "Msg1" /wait WScript //Nologo Message.vbs "Message 1" 0
Start "Msg2" /wait WScript //Nologo Message.vbs "Message 2" 0
Start "Msg3" /wait WScript //Nologo Message.vbs "Message 3" 0

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .