Solución:
Así es como lo haces:
Shell "cmd echo foo", vbNormalFocus
Siempre he usado el método Run del objeto wshShell, que está disponible después de hacer referencia al modelo de objetos de host de Windows Script en su proyecto:
Dim shell As wshShell
Dim lngReturnCode As Long
Dim strShellCommand As String
Set shell = New wshShell
strShellCommand = "C:Program FilesMy CompanyMyProg.exe " & _
"-Ffoption -Ggoption"
lngReturnCode = shell.Run(strShellCommand, vbNormalFocus, vbTrue)
Obtiene la misma funcionalidad que la instrucción Shell normal, pero el parámetro final le permite decidir si ejecutar el programa shell de forma síncrona. La llamada anterior, con vbTrue, es sincrónica. El uso de vbFalse inicia el programa de forma asincrónica.
Y, como se señaló en las respuestas anteriores, debe ejecutar el shell de comandos con el modificador “/ c” para ejecutar comandos internos, como el “echo foo” de su pregunta. Enviaría “cmd / c echo foo” al método Run.
Shell y ShellExecute?
http://msdn.microsoft.com/en-us/library/aa242087.aspx
Dim RetVal
RetVal = Shell("C:WINDOWSCALC.EXE", 1) ' Run Calculator.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)