Як запустити exe з результатом через cmd, як Linux


3

Запуск програми в Windows, ввівши це в cmd.exe.

./myapp.exe

Тоді програма виглядає як запущена в іншій нитці, відрізняється від cmd. Як змусити програму запускатись через cmd точно як стиль Linux. Коли термінал cmd знищений, запущена програма також припиняється. Поки програма працює, cmd вчасно захопить вихід STD.

Відповіді:


0

Тоді програма виглядає як запущена в іншій нитці, відрізняється від cmd.

Ну, програма працює в окремому процесі , який має власні нитки.

У Windows існує два основних типи програм: консольна та віконна.

Консольні програми - це як правило текстові програми, які друкують текст. Вони вже ведуть себе так, як вам хочеться: ви запускаєте програму, оболонка ( cmd.exe) чекає її закінчення, перш ніж повернути вас до інтерактивного запиту. Якщо програма триває, примусове припинення cmd.exeприпиняє програму.

Windowed програми , як правило , додатки , які мають графічний користувальницький інтерфейс (наприклад notepad.exe, explorer.exe, firefox.exe). Вони не ведуть себе так, як вам хочеться: коли ви запускаєте їх cmd.exe, cmd.exeне чекайте їх і негайно повертаєте вас до інтерактивного підказки. Виконана програма працює незалежно від cmd.exe, а припинення однієї не впливає на іншу.

Зауважте, що консольні програми можуть мати вікна та що віконні програми можуть мати консольний вихід. То що робить програму "консольною" чи "віконною"?

Частина .exeвказує, чи слід її запускати з підсистемою «консоль» або з підсистемою «windows». Це налаштовано (часто неявно) під час побудови програми. Це можна змінити після побудови програми; editbin.exe(в комплекті з Visual Studio) може змінювати .exeфайл і змінювати, яку підсистему повинна використовувати програма.

Якщо ви просто хочете побачити вихід stdout та stderr, вам не потрібно змінювати .exeфайл. Зазвичай програми з вікном не надсилають цей вихід нікуди, але ви можете змінити це за допомогою труб / переадресацій. Наприклад, ви можете запустити:

SomeWindowedApplication.exe > output.txt

або, якщо у вас є cat(або еквівалент):

SomeWindowedApplication.exe | cat

Це також змусить cmd.exeзачекати, коли програма закінчиться, перш ніж повернути вас до інтерактивного запиту. Зверніть увагу , що це НЕ має поведінка термінації ви хочете (тобто припинення cmd.exeв останньому прикладі закінчиться cat.exe, чи не ShowWindowedApplication.exe).

Також дивіться:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.