使用Excel VBA执行命令提示符下的命令

我有一个固定的命令,我需要通过命令提示符使用VBA,然后命令应该运行。 例如“perl a.pl c:\ temp”

以下是我正在尝试使用的命令,但它只是打开命令提示符,不运行该命令。

Call Shell("cmd.exe -s:" & "perl a.pl c:\temp", vbNormalFocus)

请检查。

S参数本身不做任何事情。

 /S Modifies the treatment of string after /C or /K (see below) /C Carries out the command specified by string and then terminates /K Carries out the command specified by string but remains 

尝试这样的事情,而不是

 Call Shell("cmd.exe /S /K" & "perl a.pl c:\temp", vbNormalFocus) 

您甚至可能不需要将“cmd.exe”添加到此命令,除非您希望在运行此命令窗口时打开命令窗口。 Shell应该自己执行命令。

 Shell("perl a.pl c:\temp") 

-编辑-
等待命令完成后,你将不得不做一些像@Nate Hekman在他的回答中显示的内容

 Dim wsh As Object Set wsh = VBA.CreateObject("WScript.Shell") Dim waitOnReturn As Boolean: waitOnReturn = True Dim windowStyle As Integer: windowStyle = 1 wsh.Run "cmd.exe /S /C perl a.pl c:\temp", windowStyle, waitOnReturn