Ver Mensaje Individual
  #2  
Antiguo 10-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
La respuesta corta:
Usa el truco 54. Este permite ejecutar la linea de comandos tal cual tu la tienes, o incluso, permite capturar directamente la salida del programa sin tener que utilizar un archivo de texto.

La respuesta larga:
Tu codigo no funciona porque en la funcion Shellexecute, el programa a ejecutar y los parametros tienen que pasarse por separado. Es decir:
Código Delphi [-]
ShellExecute(Handle,nil,PChar('G:\Mostrar_Num.bat'),PChar('> G:\Num.txt'),nil,SW_SHOW);
Pero aun asi no funcionaria como tu esperas, ya que la redireccion ">" es un parametro manejado por el interprete de comandos. Asi que lo que debemos ejecutar es el interprete de comandos, y pasarle toda la linea como parametro. Algo Asi:
Código Delphi [-]
ShellExecute(Handle,nil,PChar('cmd.exe'),PChar('/c G:\Mostrar_Num.bat > G:\Num.txt'),nil,SW_SHOW);
Y aun asi, tendríamos que resolver el problema de que el interprete de comandos no se llama siempre igual en todos los windows, tendríamos que obtener su nombre de la variable de entorno COMSPEC.

En fin, mejor usar el truco 54
Responder Con Cita