Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ejecutar Archivo bat (https://www.clubdelphi.com/foros/showthread.php?t=41204)

tertuliano 09-03-2007 15:37:51

Ejecutar Archivo bat
 
Hola,
estoy queriendo realizar un backup de una base. Para lo cual hice un archivo .bat; este archivo .bat llama a un ejecutable propio de la base que utiliza una varibale de entorno ya definida.
Si lo ejecuto funciona correctamente. El problema es que cuando lo ejecuto desde delphi no funciona, ni con ShellExecute, ni con WinExec; probe de muchas maneras posibles y nada.

Lepe 09-03-2007 16:04:21

¿que tal si pones el código que usas para llamar a ese .bat desde delphi?

tertuliano 09-03-2007 16:18:30

El archivo bat es pg_backup.bat

Probe varias formas
WinExec('pg_backup.bat',SW_NORMAL);
ShellExecute(0,nil,pchar('pg_backup'),nil,nil,SW_SHOWNORMAL);

Lo ejecuta, pero no toma la varibale de entorno y sale mal.

Lepe 10-03-2007 01:10:56

añade la ruta completa al nombre del archivo.
Código Delphi [-]
ShellExecute(0,pchar('open'),pchar('c:\ .....pg_backup'),nil,nil,SW_SHOWNORMAL);

Saludos

roman 10-03-2007 03:39:19

Y si el pg_backup.bat llama a un ejecutable, ¿no podrías llamar directamente a ese ejecutable con WinExec en lugar de hacerlo através de un bat?

// Saludos

tertuliano 10-03-2007 05:41:21

Ya probe poniendo la ruta completa del bat y nada, lo ejecuta, pero no ve la variable de entorno.
Tambien probe llamar directamente al ejecutable ya y es lo mismo.
Es medio raro esto; sobre todo porque de afuera (ejecutando directamente el .bat) anda perfecto.
Osea la cuestion es que al llamarlo de delphi lo ejecuta pero no reconoce las varibales de entorno del sistema.

fran 10-03-2007 14:31:37

A mi con este codigo me funciona sin problmas:
Código:

procedure TForm1.Lista1Click(Sender: TObject);
begin

  WinExec(PChar('D:\.....\Fichero.bat'),SW_SHOWNORMAL);

end;

Espero que te sirva,
Un Saludo.

tertuliano 12-03-2007 14:04:50

ahora me anduvo, gracias !
me anduvo con esto ultimo
Código Delphi [-]
 
WinExec(PChar('D:\.....\Fichero.bat'),SW_SHOWNORMAL);

Pero la verdad que me parecia que lo habia usado ya a eso.


La franja horaria es GMT +2. Ahora son las 11:03:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi