Итак, я считаю, что я должен передать ввод-вывод из моего приложения к cmd.exe. Я пытаюсь сделать своего рода «команду» для cmd, где она может быть вызвана непосредственно из cmd или через командный файл. Я не хочу окно, поэтому я использую WinMain
как точка входа, в моем приложении нет функции создания окна, поэтому, я полагаю, окно не будет создано.
Если мне требуется передать данные ввода-вывода из моего приложения в текущее открытое окно cmd, разве это не требует захвата выходного дескриптора cmd, передачи строки текста (ASCII) на его вывод (возможно, echo
команда?)
Я на правильном пути или нет? В настоящее время я ищу в Google и SOF методы передачи данных ввода / вывода другим запущенным консольным программам, и буду искать до тех пор.
Кроме того, есть ли способ получить переменные, хранящиеся в самом cmd? В пакетном режиме вы можете вызвать переменную через %variable%
или если setlocal enabledelayedexpansion
включен, вы можете использовать !variable!
, Если так, то как?
Нет, вы не в курсе. Ответ намного проще 🙂
Просто напишите на стандартный вывод. Записывать любые сообщения об ошибках в stderr, а для ввода читать из stdin. Эти потоки настроены на запись в консоль (если только у консоли не был перенаправлен ввод / вывод). Ваша программа может затем использоваться в качестве команды, полезной для пакетного скриптинга. Он будет должным образом учитывать любое перенаправление или канал, который создается из командной строки или пакетного сценария, без дополнительной работы с вашей стороны.
Других решений пока нет …