Запустите VBS MsgBox, но продолжите сценарий - PullRequest
0 голосов
/ 01 марта 2019

Я пробовал несколько разных способов сделать нижеприведенное возможным, но не могу найти способ сделать это.У меня есть ROBOCOPY скрипт, который выводит окно сообщения VBS в зависимости от кода выхода.Однако я хочу, чтобы пакетный сценарий продолжал выполняться и завершился даже после появления окна сообщения.На данный момент я должен нажать Ok, чтобы закрыть окно сообщения VBS, а затем командная строка закрывается.

Вот мой код:

@ECHO OFF

::Delete DB File
CD "C:\Program Files (x86)\SAP\Agentry Client"
DEL "Agentry.db"
CLS

::Copy new DB file from Fil003
2>nul PUSHD "\\sampleserver\123\123" >nul

ROBOCOPY /ZB /IS /IT /R:3 "\\sampleserver\123\123" "C:\Program Files (x86)\SP\AClient" "AClient.db" /log:"C:\Program Files (x86)\SP\AClient\Acleint.txt" /tee

    if %ERRORLEVEL% EQU 16 GOTO ER16
    if %ERRORLEVEL% EQU 1 GOTO ER1
    if %ERRORLEVEL% EQU 0 GOTO ER0

:ER0
2>nul POPD >nul 
PUSHD "\\sampleserver\123\123\"
Start /b "" cscript "NoCopy.vbs"
TIMEOUT /T 3
POPD
exit

:ER1
2>nul POPD >nul 
PUSHD "\\sampleserver\123\123\"
Start "" cmd /c cscript "Success.vbs"
TIMEOUT /T 3
POPD
exit

:ER16
2>nul POPD >nul 
PUSHD "\\sampleserver\123\123\"
Start /b "" cscript "FatalError.vbs"
TIMEOUT /T 3
POPD
exit

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете использовать mshta в vbs вместо msgbox

Function mshta(ByVal MessageText, ByVal Title, ByVal PauseTimeSeconds)

    Set WScriptShell = CreateObject("WScript.Shell")
    ConfigString = "mshta.exe vbscript:close(CreateObject(""WScript.Shell"")." & "Popup(""" & MessageText & """," & PauseTimeSeconds & ",""" & Title & """))"
    WScriptShell.Run ConfigString

End Function

'PauseTimeSeconds' закроет сообщение или вы можете установить его в 0, чтобы оно оставалось открытым до тех пор, пока пользователь не нажмет ok.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...