[英]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.