繁体   English   中英

关闭 cmd window 与 vba excel

[英]Close cmd window with vba excel

我的 vba 代码中有一个 SQL 请求

Set WSJ = VBA.CreateObject(“WScript.Shell)
WSJ.run “cmd.exe /C chcp 0000 & cd C:\oracle... “ & myPath & “.sql && exit”, 1,1

它工作得很好,但最近停止关闭 cmd window 并且不继续该过程(它不会一直发生,一天 1 或 2 次)。 没有错误,最后一行是«disconnected from server» ,但是 window 没有关闭,代码也没有继续工作。

是否可以在代码中写一个检查以在一分钟后关闭 cmd window 或类似的东西? 或者配置 sql 到达这条线并关闭

谢谢

请尝试以下代码

   Sub closwWindow()
      Call Shell("cmd.exe /S /c" & "cd /d C:\UTAS-SA && del /f/s/q BJSFM > nul", vbNormalFocus)
    End Sub

由于 WScript.Shell.Run 的返回值不是很有用,我尝试过另一种方式,但我只找到了一种从命令提示符本身完成此操作的方法:

使用Start ,我可以使用我给它的标题启动命令提示符,例如:

start "this is an interesting window" cmd.exe

结果,启动了一个命令提示符,标题为“这是一个有趣的窗口”。 然后,您可以使用Tasklist来找到它,例如:

tasklist /V | findstr "this_is_an_interesting_window"
cmd.exe  8240 Console  6  3 636 K Running  DESKTOP-D0GIHSU\plop  0:00:00 this_is_an_interesting_window

在这种情况下,您可以从那里检索进程 ID (8240),并且可以使用TaskKill来杀死它:

taskkill /FI "PID eq 8240"
SUCCESS: Sent termination signal to the process with PID 8240.

祝你好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM