vba:在完成先前的Shell之后执行Shell

时间:2018-09-01 14:30:09

标签: vba

在这种情况下,按下暂停键后如何调用第二个外壳?

dateString

在这种情况下

Shell "cmd /c cd %tmp% && echo hello > tmpfile && pause", 1
Shell "cmd /c cd %tmp% && echo hello > tmpfile && pause", 1

1 个答案:

答案 0 :(得分:1)

您使用的Shell命令为 asynchronous ,这意味着该命令一次可以运行多个进程,因此对于您的两个{{1} }语句,它们将同时执行。

另一种替代方法是改用Windows脚本宿主(Shell)的Run命令,因为它具有更多选项,包括一个等待程序执行完成再继续执行的选项。

WScript.Shell

您还可以通过将Sub ShellWait(fName As String, Optional showWindow As Boolean = True) Dim wsh As Object Set wsh = VBA.CreateObject("WScript.Shell") wsh.Run fName, -showWindow, True End Sub 指定为第二个参数来完全隐藏窗口。 (如果需要用户输入,请谨慎使用该选项!)


例如:

False

更多信息: