如何在Windows上查找COM端口

问题描述

我使用一堆使用串行端口连接到Windows计算机的嵌入式设备。我可以运行mode来找出我刚刚连接(或断开)的COM端口,但是回滚所有输出并查找更改是很麻烦的。

是否有使用命令行的更简单解决方案?

解决方法

我写了下面的小脚本,它运行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: