发现万能的WMI居然没有实现修改COM端口号的方法,不过用来遍历端口信息还是可以的,参考http://msdn.microsoft.com/en-us/library/aa394413(v=vs.85).aspx。 没有办法只能通过修改注册表的方式来实现,下面献上代码,自己看吧,里面有用到的2个utilities都是微软的工具:

COMPortNumberChanger.bat:

setlocal EnableDelayedExpansion
@echo off
set oldCOMPort=%~1
set newCOMPort=%~2
:ReadDeviceId
for /f %%a in ('.\tools\devcon findall =port * ^| find /i "%oldCOMPort%"') do set DEVICEID=%%a
if "%DEVICEID%" == "" (
echo Error: Cannot find device id for %oldCOMPort%, please check if device is installed correctly and try again.
echo Press any key to detect again.
pause
goto ReadDeviceId
):ReadFriendlyName
for /f "skip=4 tokens=1,2,*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\%DEVICEID%" /v FriendlyName') do set oldFriendlyName="%%c"
if %oldFriendlyName%=="" (
echo Error: Cannot find friendly name for %oldCOMPort%, check regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\%DEVICEID%. Check if device is installed correctly and try again.
echo Press any key to detect again.
pause
goto ReadFriendlyName
):FindDeviceMap
for /f "skip=4 tokens=1,2,3" %%a in ('reg query "HKLM\HARDWARE\DEVICEMAP\SERIALCOMM" /s') do (
if /i "%oldCOMPort%" == "%%c" (
set SerialCommKey="%%a"
)
)if %SerialCommKey%=="" (
echo Error: cannot find Device map for %oldCOMPort%, check regedit: HKLM\HARDWARE\DEVICEMAP\SERIALCOMM. Check if device is installed correctly and try again.
echo Press any key to detect again.
pause
goto FindDeviceMap
)devcon disable @"%DEVICEID%"subinacl /keyreg "HKEY_LOCAL_MACHINE\System\CurrentControlSet\ENUM\%DEVICEID%" /grant=administrators=f
subinacl /keyreg "HKEY_LOCAL_MACHINE\System\CurrentControlSet\ENUM\%DEVICEID%\Device Parameters" /grant=administrators=fREG ADD "HKLM\SYSTEM\CurrentControlSet\ENUM\%DEVICEID%\DEVICE Parameters" /v PORTNAME /t REG_SZ /d %newCOMPort% /Fset newFriendlyName=!oldFriendlyName:%oldCOMPort%=%newCOMPort%!REG ADD "HKLM\SYSTEM\CurrentControlSet\ENUM\%DEVICEID%" /v FriendlyName /t REG_SZ /d %newFriendlyName% /FREG ADD "HKLM\HARDWARE\DEVICEMAP\SERIALCOMM" /v %SerialCommKey% /t REG_SZ /d %newCOMPort% /FREG ADD "HKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter" /v "ComDB" /t REG_BINARY /d 0%newComPort:~3,1%00000000000000000000000000000000000000000000000000000000000000 /fdevcon enable @"%DEVICEID%"

调用方法:

COMPortNumberChanger.bat COM3 COM5

共修改了4处注册表项。 Devcon是微软提供的设备管理工具,下载地址:http://support.microsoft.com/kb/311272 ,subinacl是一款访问权限控制工具,下载地址:http://www.microsoft.com/downloads/en/details.aspx?familyid=e8ba3e56-d8fe-4a91-93cf-ed6985e3927b&displaylang=en

参考:

http://communities.intel.com/message/11471

Binhua Liu原创,转载请注明!

转载于:https://www.cnblogs.com/Binhua-Liu/archive/2011/06/22/2087559.html

批处理:修改COM端口号相关推荐

  1. SQL:安装多个实例,修改实例端口号,和IP加端口号连接实例

    原文:SQL:安装多个实例,修改实例端口号,和IP加端口号连接实例 sql server 安装第一个实例,默认实例的端口是1433,   一个库中如果有多个实例, 从第二个实例开始的端口是动态端口,需 ...

  2. http端口_PhpStorm 修改默认端口号63342

    PhpStorm 修改默认端口号63342​blog.csdn.net 关键词 PhpStorm phpStorm phpstorm 修改默认端口号63342 8080 80 步骤 1.打开Setti ...

  3. spring boot 如何修改默认端口号和context path

    创建了SpringBoot项目之后进行运行,当我们需要使用游览器进行访问的时候要输入端口号,那麽我们如何来修改这个端口号呢??? 1.在src/main/resources目录下新建文件applica ...

  4. windows通过注册表修改3389端口号

    <span style="color:#FF0000;">windows通过注册表修改3389端口号,步骤如下:</span> 1.开始→运行,输入rege ...

  5. 如何修改mysql占用的端口号_修改mysql端口号(mysql的端口号)

    修改mysql端口号(mysql的端口号) 2020-05-07 22:12:00 共10个回答 如何查看mysql默认端口号和修改端口号 登录mysql,使用命令showglobalvariable ...

  6. 注册表修改3389端口号

    用注册表修改3389端口号 1.改端口: 简单操作步骤:打开"开始→运行",输入"regedit",打开注册表,进入以下路径: [HKEY_LOCAL_MACH ...

  7. redis 修改默认端口号6379 (mac)

    找到redis的安装目录,正常应该都会在/usr/local/下 * cd /usr/local/redis-5.0.8 * vi redis.conf * 键入 i >> 修改默认端口号 ...

  8. esxi管理端口_ESXI 6.7修改网页端口号

    一.终端开启SSH功能,方便修改出错维护 1.按F2进入登录界面,输入用户名和密码: 2.Troublesboot Options 按enter键进入下级页面: 3.在选择ssh选项是enter键切换 ...

  9. jenkins查看端口号 修改默认端口号

    在linux下修改jenkins端口号: 修改/etc/sysconfig/jenkins文件 修改里面的JENKINS PORT, 改为你要的端口. 然后重启jenkins vim /etc/sys ...

  10. windows server2012 r2修改远程端口号

    环境:VPS服务器 1.打开注册表,搜索"Regedit" 2.在注册表中依次开[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Contr ...

最新文章

  1. [ 一起学React系列 -- 10 ] i18n
  2. Demon_接金币(三个掉落物品预设体,一接物体的工具)
  3. python 下载文件 限速-Python网络爬虫---scrapy通用爬虫及反爬技巧
  4. cors spring_Spring,REST,Ajax和CORS
  5. azure mysql sql,UiPath连接Azure Sql Server数据库
  6. C# Winform 使用二维码
  7. mysql 删除表时外键约束_MySQL删除表的时候忽略外键约束的简单实现
  8. OC基础15:内存管理和自动引用计数
  9. Moss 2007 入门(1) - 功能概述【转】
  10. idea开发工具的一些实用技巧
  11. 量子计算机编程教程,量子信息与量子计算简明教程 PDF扫描版[12MB]
  12. ARM CMSIS 4.5.0
  13. Paper | Detail-revealing Deep Video Super-resolution
  14. 概率论与数理统计 期末突击复习
  15. 实现antd中Form、Form.Item组件
  16. macbook黑屏的三种解决方法
  17. C# 获取笔记本电池信息 调用 Win32 Api
  18. SSH综合项目实战(快递) -- day07 定区关联快递员、搭建前台、客户注册
  19. LinkedList 类 的简单应用
  20. 消气机器人_星新一少年科幻·淘气的机器人最新章节_星新一著_掌阅小说网

热门文章

  1. c语言中aver是什么意思_Linux系统top命令中的io使用率,到底是什么意思?
  2. BootCDNApi使用记录
  3. RN 47 中的 JS 线程及 RunLoop
  4. Token注解防止表单的重复提交
  5. 连接(交叉连接、内连接、外连接、自连接)
  6. oracle instr查询字符串
  7. object - c 函数的值
  8. HDU1512 (左偏树)
  9. linux ssl PHP,Linux环境安装Apache与PHP,支持SSL
  10. sed以及awk的替换命令