Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Guman
3 / 3 / 0
Регистрация: 24.11.2015
Сообщений: 88
1

Получение номера COM-порта из выводимого командой текста

24.11.2015, 11:08. Просмотров 1183. Ответов 5
Метки нет (Все метки)

----

Добавлено через 4 минуты
Здравствуйте, устал читать в просторах интернета в поисках информации, питаюсь реализовать уже на протяжении долгого времени, но не получается...
Коротко - трудно описать, да и саму суть, долго рассказывать... Поэтому, напишу очень коротко, как смогу.

Есть модем Huawei, при его подключении к ПК, появляются Com порты. Одна из них называется PC UI Interface. Надо автоматически определить номер com порта и вытянуть это значение при его обнаружении, если не получиться, повторить обнаружение еще 2 раза и если дальше не находит, выдать значение "Интерфейс PC UI Interface не найден!!" или чтолибо в этом духе, а если нашло - Вывести циферками номер COM Порта без приставки "COM "..

после долгих поисков нашел утилку EnumSerialPorts , в архиве присутствуют исходники, если кто может реализовать саму программу с управление командной строки буду очень признателен...

ух че то много написал-)
вообщем пишу начало... как я думаю... надеюсь дальше исправите, поможете и дополните, уважаемы знатоки
запускаем EnumSer.exe в командной строке
Windows Batch file
1
2
@echo off
EnumSer.exe
выдает вот эти строки с низу, текст надо дальше обработать
Код
CreateFile method reports
COM3
COM4
COM5
COM6
COM7
COM8
QueryDosDevice method reports
COM5
COM6
COM7
COM3
COM8
COM4
GetDefaultCommConfig method reports
COM3
COM4
COM5
COM6
COM7
COM8
Device Manager (SetupAPI - GUID_DEVINTERFACE_COMPORT) reports
COM3 <FC - SerialA>
COM4 <FC - SerialB>
COM5 <FC - ShallA>
COM6 <FC - ShallB>
COM7 <FC - SerialC>
COM8 <FC - PC UI Interface>
Device Manager (SetupAPI - Ports Device information set) reports
COM3 <FC - SerialA>
COM4 <FC - SerialB>
COM5 <FC - ShallA>
COM6 <FC - ShallB>
COM7 <FC - SerialC>
COM8 <FC - PC UI Interface>
EnumPorts method reports
COM1
COM2
COM3
COM4
WMI method reports
ComDB method reports
CEnumerateSerial::UsingComDB failed, Error:5
Registry method reports
COM8
COM5
COM6
COM3
COM4
COM7
как видите, поиск осуществляется несколькими способами.

сократим все и обработаем на прямую EnumSer.exe указанной ниже командой
Windows Batch file
1
2
@echo off
EnumSer.exe | FIND "PC UI Interface"
увидим следующее
Код
COM8 <FC - PC UI Interface>
COM8 <FC - PC UI Interface>
, если не получиться, повторить обнаружение еще 2 раза и если дальше не находит, выдать значение "Интерфейс PC UI Interface не найден!!" или чтолибо в этом духе.

дальше надо избавиться от повторяющегося текста
и оставить только одно из получаемого текста
Код
COM8 <FC - PC UI Interface>
потом надо обработать этот текст следующим образом..
от текста COM8 <FC - PC UI Interface> нужно получить только номер COM порта, он может иметь номер 8 ну или допустим 88 или какое нить другое число, то-есть надо чтобы в итоге после обработки текста остались только цифры после слога "com"
кстати текст COM8 <FC - PC UI Interface> может быть маленько иной и по этому лучше попробовать сначала найти с помощью команды в тексте слово "com" и по значению сохранить N число...

в итоге, результат должен быть такой.
если COM порт определился - то выводится номер Com порта, а если нет - то выводиться текст который я заранее ввел уже....

надеюсь на вашу скорейшую помощь...
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 11:08
Ответы с готовыми решениями:

Получение значения по URL и замена определенного текста в файле командой по SHH
Получение значения по URL и замена определенного текста в файле командой по SHH Мне необходимо...

Вывести одной командой данные в 2 порта
Скажите, пожалуйста, ведь в STM32 порты ввода-вывода доступны в адресном пространстве подобно...

Упорядочивание выводимого текста.
Ребята очень прошу вас помочь мне, в институте нам задали задание, решить формулу в паскале, я всё...

Изменить цвет выводимого текста
Здравствуйте помогите вывести текст другим цветом и фоном, код под DOS .model tiny .code .286...

Русификация выводимого из переменных текста
например есть задание: Структура AEROFLOT с полями: - название пункта назначения рейса; - тип...

5
Garry Galler
1915 / 1455 / 550
Регистрация: 28.10.2013
Сообщений: 3,733
24.11.2015, 11:50 2
Вместо EnumSerialPorts существует команда
Windows Batch file
1
wmic Path Win32_POTSModem
или в более фильтрованном виде:
Windows Batch file
1
wmic Path Win32_POTSModem WHERE (Status="OK" And  StatusInfo="3") get /value
или так
Windows Batch file
1
wmic Path Win32_POTSModem WHERE (Status="OK" And  StatusInfo="3") get  attachedto,name
Вся инфа по классу Win32_POTSModem есть на msdn.
0
Guman
3 / 3 / 0
Регистрация: 24.11.2015
Сообщений: 88
24.11.2015, 11:56  [ТС] 3
так EnumSerialPorts обрабативает не только одним методом.... посмотрите сколько вариантов... для точности и я его выбрал...http://www.naughter.com/enumser.html
а так команда обрабатывает не все как я понял и не видает то что мне нужно!!!

а на самом деле было бы классно если бы дали полностью рапотоспособный скрипт
0
Garry Galler
1915 / 1455 / 550
Регистрация: 28.10.2013
Сообщений: 3,733
24.11.2015, 12:07 4
команда обрабатывает не все как я понял и не видает то что мне нужно!
Там 79 параметров - неужели в их значениях нет имени PC UI Interface или того что вам нужно?
0
Guman
3 / 3 / 0
Регистрация: 24.11.2015
Сообщений: 88
24.11.2015, 17:51  [ТС] 5
Выдает отсутствуют экземпляры...
не выдает ни чего под виндовс 10 пробую
а эта утилка видает во всех виндах все

Добавлено через 16 минут
вы скажите пожалуйста, как сделать так чтобы при проверке
Windows Batch file
1
2
@echo off
EnumSer.exe | FIND "PC UI Interface"
если ничего не находит, то повторить обнаружение еще 2 раза и если дальше не находит, выдать значение "Интерфейс PC UI Interface не найден!!" , а если находит, то надо чтобы выдавало весь текс, для дальнейшей обработки..

буду потихой скрипты соеденять......

Добавлено через 2 часа 26 минут
не ужели ни кто не может ответить ни чего по теме???
0
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
28.11.2015, 01:42 6
Лучший ответ Сообщение было отмечено Guman как решение

Решение

Windows Batch file
1
2
3
4
5
6
@echo off
 
for /f "delims=COM " %%i in ('EnumSer.exe^| find "PC UI Interface"') do set N=%%i
if defined N (echo %N%) else (echo Интерфейс PC UI Interface не найден!)
 
pause>nul
0
28.11.2015, 01:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2015, 01:42

Ширина выводимого текста в пикселях
Господа, пытаюсь тут определить ширину выводимого текста. Общий смысл: есть динамически...

Смещение текста, выводимого в Memo1
Уважаемые программисты! Пытаюсь сделать следующее, при нажатии на Button1 в Memo1 выводятся...

Размер текста, выводимого qDebug
Есть функция которая возвращает QString. QDebug ~32000 символов отображает, ~48000 уже нет. Есть ли...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru