2008-11-14 50 views

回答

12

这里是你如何做到这一点:

Shell "cmd echo foo", vbNormalFocus 
9

我一直使用的WshShell对象,您引用的Windows脚本宿主对象模型之后可用的运行方法在您的项目中:

Dim shell As wshShell 
Dim lngReturnCode As Long 
Dim strShellCommand As String 

Set shell = New wshShell 

strShellCommand = "C:\Program Files\My Company\MyProg.exe " & _ 
    "-Ffoption -Ggoption" 

lngReturnCode = shell.Run(strShellCommand, vbNormalFocus, vbTrue) 

您可以获得与第e正常的Shell语句,但最终参数可以让您决定是否同步运行shelled程序。上面的调用与vbTrue是同步的。使用vbFalse异步启动程序。

而且,正如在以前的答案中指出的那样,您需要使用“/ c”开关运行命令shell以执行内部命令,如问题中的“echo foo”。你会发送“cmd/c echo foo”到Run方法。

+0

lngReturnCode = shell.Run(strShellCommand,vbNormalFocus,vbTrue) – nh32rg 2013-01-14 16:56:35

4

的所有

Shell Environ("COMSPEC") & " /c echo foo", vbNormalFocus 

如果你想支持早期的系统,如Windows 9x中或者我应该以为扩大COMSPEC环境变量的组合。

您还可以获取使用

pid = Shell(Environ("COMSPEC") & " /c echo foo", vbNormalFocus) 
4
Shell "cmd /c echo foo" 
-1

只能使用双引号的进程ID:""...""

示例 - 发送确认通做出一个任务:

shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"") 

因为第一个""C:\...和t他会停止。


Ahora explico西班牙文
个美国多布尔科米利亚斯:""...""

Ejemplo - 万都联合国通过对confirmar拉creacion德拉利亚:

shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"") 

拉遗赠ES阙拉西甲科米利亚斯" se cierra con las comillas de la ruta "C:\... y se pierde la cadena字符串。

:) ESPERO SIRVAý布埃纳suerte

相关问题