Как можно принудительно не закрывать сообщение об ошибке cmd.exe?

Как можно принудительно не закрывать сообщение об ошибке cmd.exe?

.exe, который запускается через cmd.exe, запускается и затем быстро исчезает, прежде чем я успеваю прочитать сообщение об ошибке. Как мне сделать так, чтобы окно cmd.exe и сообщение об ошибке не закрывались? Или есть ли способ зарегистрировать эту информацию об ошибке, которая только что высветилась? Спасибо.

решение1

Запуск программы, запускающей консоль, действительно закроет окно, поскольку CMD больше не нужен.

Если нажать startи ввести, cmdа затем нажать Enter, откроется командная строка.

Нажмите букву диска, на котором находится программа, если это не C:, затем : и нажмите Enter.

В приведенных ниже примерах символ _ в конце представляет курсор.

Пример:

C:\Users\User>D:_

D:\>_

теперь используйте команду, cdчтобы перейти в каталог программы. Вы можете нажать tabдля автозаполнения имен. Too tabwould make Tools, если эта папка существует.

Пример:

D:\>cd Tools_

D:\Tools>cd "My Program"_   <- type 'My' and press tab to Autocomplete to "My Program"

D:\Tools\My Program>_

Теперь введите название программы, которую вы хотите запустить.

Пример:

D:\Tools\My Program>program_
Hello, I am the error message you want to see.

D:\Tools\My Program>_

решение2

Обычно, когда мне приходится это делать, я создаю bat-файл в той же папке (то есть переименовываю новый текстовый файл в any.bat), открываю его в текстовой папке и вводлю:

ProgramName.exe
Pause

Закройте и сохраните, затем запустите bat-файл, и он должен остаться открытым!

решение3

Для запуска этого exe-файла можно использовать файл .bat.

Кроме того, вы можете использовать следующую команду в cmd для записи ошибок/вывода этого exe-файла в текстовый файл:

myFile.exe >> "C:\logFile.txt"

Двойной символ «больше» добавляется к существующему файлу « >> », однако одинарный символ перезаписывает существующий файл ">".

Надеюсь, это поможет вам зарегистрировать ошибку.

решение4

Согласно этому:

|| [...] команда1 || команда2 Используется для запуска команды, следующей за ||, только если предыдущая команда || завершается неудачно. Cmd.exe запускает первую команду, а затем запускает вторую команду, только если первая команда не была выполнена успешно (получает код ошибки больше нуля).

и если вы создаете этот .exe, вам просто нужно поместить pauseкоманду после ваших предложений.

И пример на C++, вызывающий Bash:

#include <iostream>
#include <windows.h>


using namespace std;

int main()
{
    system("cd  akfhaskfn|| pause");
    system("cd  || pause");

    return 0;
}

Вы увидите, что только первый вызовет команду паузы.

Связанный контент