Выход из окна Cmd после выполнения скрипта в VBA - PullRequest
0 голосов
/ 07 февраля 2019

Я хотел бы выйти из окна CMD после выполнения скрипта (в настоящее время я выхожу из CMD вручную, написав команду exit в окне CMD, после чего VBA продолжает работать)

Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Dim errorCode As Long
errorCode = wsh.Run(sCmdline, windowStyle, waitOnReturn)

'-- Finally Run function Arguments ----- 
 errorCode = wsh.Run("cmd /k systeminfo >D:\Tools\MyScript\SystemInfo.txt", windowStyle, waitOnReturn)

If errorCode = 0 Then
    MsgBox "Done! No error to report."
    Set wsh = Nothing
Else
    MsgBox "Program exited with error code " & errorCode & "."
    Set wsh = Nothing
End If

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Кажется, вы хотите закрыть cmd после его открытия.Флаг /C является лучшим здесь, потому что он выполняет команду, указанную в строке, а затем завершается.

Итак, вы должны написать:

errorCode = wsh.Run("cmd /c systeminfo >D:\Tools\MyScript\SystemInfo.txt", windowStyle, waitOnReturn)

, которая будет работать.

0 голосов
/ 07 февраля 2019

В вашем sCmdLine (который не определен в вашем вопросе), просто добавьте && exit в конце, чтобы выполнять команды одну за другой в одной строке.

Если исходная команда была sCmdLine = "cmd.exe /S /K ping www.google.com", то она стала бы sCmdLine = "cmd.exe /S /K ping www.google.com && exit".

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