es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La ventana de comandos se cierra muy rápidamente al ejecutar un script por lotes con system().

Tengo una aplicación desarrollada con Borland C++Builder (Embarcadero en la actualidad) en Windows 10.

Quiero ejecutar un script contenido en un archivo .bat desde mi aplicación, usando el siguiente código:

“`c++
void __fastcall TForm1::Button1Click(TObject *Sender)
{
system("myfile.bat");
}

<pre><code><br />Sin embargo, la ventana de comandos aparece y luego se cierra muy rápido, y no tengo tiempo para ver el resultado.

He agregado un comando <code>pause</code> en el archivo <code>.bat</code>, pero sin éxito.

A continuación se muestra el código de mi archivo <code>.bat</code>:

“`none
@echo off
“./ttpmacro.exe” /I “./binary.ttl”
pause

¿Hay alguna solución para este problema?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes redirigir la salida del archivo .bat a un archivo o a una ventana de consola para poder ver los resultados. Para redirigir la salida a un archivo, puedes modificar tu código de la siguiente manera:

    “`c++
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    system(“myfile.bat > output.txt”);
    }


    Esto redirigirá la salida de `myfile.bat` a un archivo llamado `output.txt`. Para redirigir la salida a una ventana de consola, puedes utilizar el comando `pause` al final del archivo `.bat`, pero necesitas modificar tu comando `system` de la siguiente manera: ```c++ void __fastcall TForm1::Button1Click(TObject *Sender) { system("cmd.exe /c myfile.bat"); }

    Esto ejecutará el comando cmd.exe, el cual ejecutará tu archivo .bat en una ventana de consola que permanecerá abierta hasta que presiones una tecla para cerrarla.

Comments are closed.