如何从 Windows 7 的命令行中删除所有 COM 端口?

gee*_*mc4 4 windows-7 command-line

我们有一台用于测试某些设备的计算机。每隔一段时间,测试人员需要进入并移除分配的 COM 端口,以便他们释放并从 1 开始。最近,它已将相同的 COM 端口分配给几个设备(大约 8 个同时连接)时间),此外,他们需要更改测试代码以匹配操作系统分配的任何编号。

重复的数字是报告的问题,但我认为“必须每天多次检查 COM 端口并更新代码”也是一个问题。

设备管理器中,如果我打开以显示隐藏的设备,我会看到数百个!

在此处输入图片说明

您可以通过滚动条的大小判断列表非常大。我可以点击每一个并卸载,但这是疯狂的 1 对 1 这就是为什么我要求命令行替代方案,所以我可以编写一个脚本,当他们需要重置端口时,他们可以双击。

当然,如果有一些软件可以允许这种情况发生,那也很好。

STT*_*TTR 6

移除活动的 USB 端口:

devcon /r remove @usb\*
Run Code Online (Sandbox Code Playgroud)

删除活动的 LPT 和 COM 端口:

devcon /r remove =ports
Run Code Online (Sandbox Code Playgroud)

查询所有 COM 和 LPT 端口:

devcon FindAll =Ports
Run Code Online (Sandbox Code Playgroud)

查询活动的 USB 端口:

devcon status @usb\*
Run Code Online (Sandbox Code Playgroud)

查询所有USB端口-不同的结果:

devcon findall @usb\*
devcon findall =USB
Run Code Online (Sandbox Code Playgroud)

枚举所有设备:

devcon hwids * > hwids.txt
Run Code Online (Sandbox Code Playgroud)

WDK 的一部分,Windows 驱动程序工具包版本 7.1.0

旧版本 2003-01-29 不适用于 Windows 7(不是 del 设备)。 devcon 旧版本 2003-01-29

DevCon 的源代码

备选方案 1 - PnPUtil

备选方案 2 - 注册表项,在子项处搜索 USB 设备

不是全部!

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI
Run Code Online (Sandbox Code Playgroud)

例子:

reg delete "HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Seagate&Prod_USB_2.0_Cable&Rev_0148" /f
Run Code Online (Sandbox Code Playgroud)

如果端口枚举devcon FindAll =Ports- 删除此注册表项:|

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI

如果端口枚举devcon status @usb\*- 删除此注册表项:|

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB

例子:

打开注册表

更改权限

删除键

谢谢geermc4!我测试了 devcon。在 Windows 驱动程序套件版本上,它可以与 Windows 7 一起正常工作。

只能为 Windows XP 设置硬件配置文件。我们将无法在 Windows 7 上进行设置。这是设计使然......备份HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum......

  • 那些确实有效,只是删除失败,我正在尝试使用旧版本的链接,因为它是一个要下载的较小文件,但现在尝试使用新版本,这很有效! (2认同)