Se ejecuta un .exe que se ejecuta a través de cmd.exe y luego desaparece rápidamente antes de que pueda leer el mensaje de error. ¿Cómo puedo hacer que la ventana de cmd.exe y el mensaje de error no se cierren? ¿O hay alguna forma de registrar la información de error que acaba de aparecer? Gracias.
Respuesta1
Iniciar un programa que inicie la consola cerrará la ventana, porque CMD ya no es necesario.
Si presiona start
, escribe cmd
y presiona Intro, iniciará un símbolo del sistema.
Presione la letra de la unidad en la que se encuentra el programa si no está en C:, seguido de : y presione Enter.
En los ejemplos siguientes, el _ al final representa el cursor.
Ejemplo:
C:\Users\User>D:_
D:\>_
ahora, use el comando cd
para navegar al directorio del programa. Puedes presionartab para autocompletar nombres. También tabcrearía Herramientas si esa carpeta existe.
Ejemplo:
D:\>cd Tools_
D:\Tools>cd "My Program"_ <- type 'My' and press tab to Autocomplete to "My Program"
D:\Tools\My Program>_
Ahora ingrese el nombre del programa que desea ejecutar.
Ejemplo:
D:\Tools\My Program>program_
Hello, I am the error message you want to see.
D:\Tools\My Program>_
Respuesta2
Normalmente, cuando tengo que hacer esto, creo un archivo bat en la misma carpeta (por lo que el nuevo archivo de texto cambia el nombre a cualquier.bat), lo abro en la carpeta de texto y luego escribo:
ProgramName.exe
Pause
Cierra y guarda, luego ejecuta el archivo bat y debería mantenerlo abierto.
Respuesta3
Puede utilizar el archivo .bat para ejecutar ese exe.
Además, puede utilizar el siguiente comando en cmd para registrar el error/salida de ese archivo exe en un archivo de texto:
miArchivo.exe >> "C:\logFile.txt"
El símbolo doble mayor que se agrega al archivo existente " >> "; sin embargo, el símbolo único sobrescribe el archivo existente ">".
Espero que esto te ayude a registrar el error.
Respuesta4
De acuerdo a esto:
|| [...] comando1 || comando2 Úselo para ejecutar el siguiente comando || sólo si el comando anterior || falla. Cmd.exe ejecuta el primer comando y luego ejecuta el segundo comando solo si el primer comando no se completó correctamente (recibe un código de error mayor que cero).
y si estás creando ese .exe, solo necesitas ponerpause
el comando después de tus oraciones.
Y ejemplo en c++ que llama a bash:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system("cd akfhaskfn|| pause");
system("cd || pause");
return 0;
}
Verás que sólo el primero llamará al comando de pausa.