Ejecute un comando en el símbolo del sistema usando excel VBA

Tengo un comando fijo que necesito pasar al símbolo del sistema usando VBA y luego el comando debería ejecutarse. por ejemplo, “perl a.pl c: \ temp”

siguiente es el comando que estoy tratando de usar, pero simplemente abre el símbolo del sistema y no ejecuta el comando.

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

Por favor, compruebe.

El parámetro S no hace nada por sí mismo.

 /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 

Pruebe algo así en su lugar

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

Es posible que ni siquiera necesite agregar “cmd.exe” a este comando a menos que desee abrir una ventana de comandos cuando se ejecute. Shell debería ejecutar el comando por sí mismo.

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

-Editar-
Para esperar a que termine el comando, tendrá que hacer algo como @Nate Hekman muestra en su respuesta aquí

 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