Как найти COM-порты в Windows

#windows #serial-port

#Windows #последовательный порт

Вопрос:

Я работаю с множеством встроенных устройств, которые используют последовательные порты для подключения к моей машине с Windows. Я могу запустить mode , чтобы узнать, какой COM-порт я только что подключил (или отключил), но сложно прокручивать все выходные данные и находить, что изменилось.

Есть ли более простое решение, использующее командную строку?

Ответ №1:

Я написал следующий небольшой скрипт, который запускает mode и сортирует результаты. Запустите его, он останется открытым, и вы можете нажать Enter в любое время, чтобы обновить список. Да, это просто, но вы можете настроить его так, как считаете нужным: [*]

 #!/bin/bash
#
# List COM ports on one line
#
# SYNOPSIS:
#   ListPorts.sh

MODE="/c/Windows/System32/mode.com"

list_ports() {
  PORTS_W=$(${MODE} | grep "Status for device COM" | awk '{ print $4 }' | sed s/:// | sort -V )
  echo ${PORTS_W}
}

while [ 1 ] ; do
  echo -n "Available COM ports are "
  list_ports
  echo -n "Hit [Enter] to refesh the list or ^C to quit: "
  read
done
  

[*] Оставлено в качестве упражнения для читателя: просто используйте sed для обрезки строки, а не awk ... | sed ...

пример вывода:

 Available COM ports are COM4 COM9 COM18 COM19
Hit [Enter] to refesh the list or ^C to quit: