Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.11.2021, 12:57
Ответы с готовыми решениями:

Отправка и чтение данных Командной строки (Cmd)
Доброго времени суток.. Данных тем навалом.. Но чёт не могу найти подходящий ответ или пример .. Давно писал что-то типо конекта к wi-fi...

Вывод данных из командной строки (консоли CMD) в TextBox
Всем доброго времени суток, уважаемые форумчане. Столкнулся с проблемой следующего характера. Имеется следующий код: ...

Параметры командной строки CMD
Как можно решить данную задачу? помогите, пожалуйста Если в папке Temp есть файлы с расширением, заданным первым параметром, то поменять...

10
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
 Аватар для aenye
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
07.11.2021, 13:19
Цитата Сообщение от randok Посмотреть сообщение
Читать из логов это нормальное решение
Ага, пока кто-то уровень логирования не изменит, либо формат записи в новой версии. Если контракта нет - с таким же успехом можно из рандомного текстового файла читать
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
07.11.2021, 13:21
Цитата Сообщение от aenye Посмотреть сообщение
Ага, пока кто-то уровень логирования не изменит, либо формат записи в новой версии.
Это уже должно решаться на уровне взаимодействия с разработчиком программы. В любом случае, читать прямо из консоли как хочет kirteas это дурдом. К тому же также нет никаких гарантий, что там вывод не изменится.
0
 Аватар для aenye
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
07.11.2021, 13:30
Цитата Сообщение от randok Посмотреть сообщение
чтобы другие разработчики могли работать с их программами, программисты создают api
Вы же выше уже нормальный ответ дали)
Цитата Сообщение от randok Посмотреть сообщение
В любом случае, читать прямо из консоли как хочет kirteas это дурдом.
Парсить логи - такой же дурдом.
Если есть контакт разработчика указанного стороннего ПО - тогда все относительно просто решается.
Если доступа к телу разрабов нет - то ТСу с текущим уровнем знаний и лезть туда не стоит, кроме жепной боли и потраченного времени - ничего не обретет
0
0 / 0 / 0
Регистрация: 11.04.2020
Сообщений: 55
13.11.2021, 13:45  [ТС]
Ребят, всё здорово, но программа, которая работает в консоле сторонняя. На Гите есть вроде бы часть кода, гляну позже.

Суть в том, что она работает и выполняет свои задачи, создаёт файлы. Есть файлы, которые плохие, их можно удалить, а есть хорошие. Я хочу не вручную их сортировать, а через свою программу, чтобы облегчить себе жизнь. Поэтому и хочу анализировать результаты в консоле, либо в логах (парсить), в зависимости от результата, либо удалить, либо переместить в архив нужный файл. Всё ))

Примерно ТЗ:
- программа работает в консоле ~ 1 час
- по окончанию выходит сообщение о формировании файла
- моя программа должна это окончание поймать и запустить PowerShell и отправить в него команду
- PowerShell принимает команду и начинает тестировать собранный файл
- по результатам теста (хороший либо плохой), моя программа считывает результат уже из PowerShell и удаляет плохой, либо перемещает хороший в нужную папку.

Всё
0
 Аватар для aenye
304 / 186 / 45
Регистрация: 05.07.2018
Сообщений: 580
14.11.2021, 17:38
kirteas, В таком случае, Вам вообще не нужно следить за работой сторонней программы. Просто натравите FileSystemWatcher на директорию, куда стороннее ПО складывает файлы и в обработчик создания файла поместите код , который будет его тестировать на предмет "хорошести". Свою утилиту, использующую FileSystemWatcher, можете запускать в фоновом режиме с помощью WindowsService.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2021, 17:38
Помогаю со студенческими работами здесь

Интерпретатор командной строки CMD
Доброго времени суток, встала задача при выполнении лабораторной разработать интерпретатор командной строки CMD, чтобы можно было выбирать...

поиск файлов с командной строки cmd
Всем привет! Есть код, который работает без cmd и показывает список файлов на диске по заданному пути и маске. Но не работает с...

Текст из командной строки cmd.exe
Всем привет. Перейду сразу к вопросу)) Имеется небольшой код: System.Diagnostics.Process.Start("cmd.exe", "/k ping...

Создание программы итерпретатора командной строки CMD
Нужна помощь в создании. Каким образом это всё можно реализовать? Через system? Если да, то как это всё пограмотнее расписать?

Java. Выполнить команды cmd (командной строки)
Здравствуйте! Очень кратко: ищу аналог С++ команды system("..."); в Java. Нужно перемещаться между папками,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru