2008-11-14 23 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