|
0 / 0 / 0
Регистрация: 11.04.2020
Сообщений: 55
|
|
Ловить поток данных из командной строки (cmd)06.11.2021, 12:57. Показов 1940. Ответов 10
Добрый день, пока ещё не писал саму программу, только знаю, как работать с файлами.
Сейчас думаю над разработкой программы для личный целей, нужно как-то подключиться к уже запущенной cmd консоли, где будет работать другая (сделанная не мной) программа, в момент получения данных, моя программа будет принимать решение в зависимости от полученных данных (от ситуации) и отправлять команду в PowerShell и по результатам PowerShell принимать следующее действие. Получается, мне нужно как-то взаимодействовать с cmd консолью и с PowerShell сразу, моя программа будет работать между ними, как пользователь, только от определённой ситуации сама будет принимать решения. Пишу для себя, чтобы облегчить себе работу. P.S. С файлами работал через потоки FileStream, StreamReader, StreamWriter и подобные.
0
|
|
| 06.11.2021, 12:57 | |
|
Ответы с готовыми решениями:
10
Отправка и чтение данных Командной строки (Cmd)
Параметры командной строки CMD |
|
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
|
|
| 06.11.2021, 13:14 | |
|
kirteas, что-то Вы перемудрили. Подключаться к консоли, принимать решения...Вы что, железного человека пересмотрели?
0
|
|
|
0 / 0 / 0
Регистрация: 11.04.2020
Сообщений: 55
|
|
| 06.11.2021, 19:36 [ТС] | |
|
AndreyVorobey, нет, консоль сама работает, я лишь буду получать данные и в PowerShell отправлять необходимое, а по завершению процесса отправлять новую команду.
0
|
|
|
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
|
|
| 07.11.2021, 12:12 | |
|
kirteas, для того, чтобы другие разработчики могли работать с их программами, программисты создают api, через который можно взаимодействовать с программой. Если такового api нет, то никак вы не сделаете то, что задумали. Вариант только один - лезть в память программы и читать там значения, которые она генерит, но это требуется уровень существенно выше, чем вы очевидно обладаете. Самый простой вариант это чтобы программа, из которой вам нужны данные, периодически писала бы в каком-то виде логи, а вы бы эти логи читали вашей программой. Ну или требуется нормальный api интерфейс. Если же у вас нет контактов с разработчиком, то ничего путного из этой затеи не выйдет.
0
|
|
|
0 / 0 / 0
Регистрация: 11.04.2020
Сообщений: 55
|
|
| 07.11.2021, 12:44 [ТС] | |
|
randok, обычная cmd консоль, я могу сделать, чтобы лог файл создавала и из него считывать, но хотелось бы как-нибудь без третьего калена, если это реально.
В cmd идёт процесс, я просто хочу считывать текст, который в консоли появляется и после этого уже чтобы реагировала моя программа, например, отправляла команду в powershell
0
|
|
|
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
|
|
| 07.11.2021, 13:12 | |
|
kirteas, технически вы конечно можете считывать текст прямо из окна консоли, но это вариант через одно место. Во-первых, вам потребуется постоянно выводить это окно в активный режим. Во-вторых, вам придется построчно читать все, что появляется в этой консоли и уже далее анализировать. То есть вы не сможете читать какие-то отдельные ответы, придется буквально читать весь текст. И это кстати не самая тривиальная задача в реализации, вам придется работать с pinvoke. Если у вас есть логи, работайте с логами, это абсолютно нормально, такие решения по парсингу логов используются повсеместно в различных реализациях, например часто используемая связка elasticsearch плюс logstash плюс kibana. Читать из логов это нормальное решение.
0
|
|
|
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
|
||
| 07.11.2021, 13:19 | ||
0
|
||
|
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
|
||
| 07.11.2021, 13:21 | ||
|
0
|
||
|
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
|
|||
| 07.11.2021, 13:30 | |||
|
Если есть контакт разработчика указанного стороннего ПО - тогда все относительно просто решается. Если доступа к телу разрабов нет - то ТСу с текущим уровнем знаний и лезть туда не стоит, кроме жепной боли и потраченного времени - ничего не обретет
0
|
|||
|
0 / 0 / 0
Регистрация: 11.04.2020
Сообщений: 55
|
|
| 13.11.2021, 13:45 [ТС] | |
|
Ребят, всё здорово, но программа, которая работает в консоле сторонняя. На Гите есть вроде бы часть кода, гляну позже.
Суть в том, что она работает и выполняет свои задачи, создаёт файлы. Есть файлы, которые плохие, их можно удалить, а есть хорошие. Я хочу не вручную их сортировать, а через свою программу, чтобы облегчить себе жизнь. Поэтому и хочу анализировать результаты в консоле, либо в логах (парсить), в зависимости от результата, либо удалить, либо переместить в архив нужный файл. Всё )) Примерно ТЗ: - программа работает в консоле ~ 1 час - по окончанию выходит сообщение о формировании файла - моя программа должна это окончание поймать и запустить PowerShell и отправить в него команду - PowerShell принимает команду и начинает тестировать собранный файл - по результатам теста (хороший либо плохой), моя программа считывает результат уже из PowerShell и удаляет плохой, либо перемещает хороший в нужную папку. Всё
0
|
|
|
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
|
|
| 14.11.2021, 17:38 | |
|
kirteas, В таком случае, Вам вообще не нужно следить за работой сторонней программы. Просто натравите
FileSystemWatcher на директорию, куда стороннее ПО складывает файлы и в обработчик создания файла поместите код , который будет его тестировать на предмет "хорошести". Свою утилиту, использующую FileSystemWatcher, можете запускать в фоновом режиме с помощью WindowsService.
1
|
|
| 14.11.2021, 17:38 | |
|
Помогаю со студенческими работами здесь
11
Интерпретатор командной строки CMD поиск файлов с командной строки cmd Текст из командной строки cmd.exe Создание программы итерпретатора командной строки CMD Java. Выполнить команды cmd (командной строки) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|