我想在执行脚本后退出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
答案 0 :(得分:1)
打开cmd后,您似乎想关闭它。 /C
标志在这里是最好的,因为它执行字符串指定的命令然后终止。
因此,您应该写:
errorCode = wsh.Run("cmd /c systeminfo >D:\Tools\MyScript\SystemInfo.txt", windowStyle, waitOnReturn)
这将起作用。
答案 1 :(得分:0)
在您的sCmdLine
(问题中未定义)中,只需在末尾添加&& exit
以在一行中一个接一个地执行命令。
如果您原来的命令是sCmdLine = "cmd.exe /S /K ping www.google.com"
,那么它将变成sCmdLine = "cmd.exe /S /K ping www.google.com && exit"
。