Обновление : это более короткая версия для получения только N детали из COM3
@echo off && setlocal enabledelayedexpansion
for /f "tokens=2delims=COM:" %%i in ('mode ^| findstr /RC:"\C\O\M[0-9*]"') do set "_com=%%i" & echo/!_com!
@echo off && setlocal enabledelayedexpansion
for /f "tokens=2delims=COM:" %%i in ('mode^|findstr /C:"COM"')do set "_com=%%i"&echo/!_com!
:: результат партии 3 ::
Obs.: Для использования в командной строке: for / f "tokens = 2delims = COM:" %% i in ('mode ^ | findstr "COM"') установить "_com =% i" и вызвать echo /% _ com%
Чистый пакетный раствор ...
для файла bat, может предложить использовать chgport
для этого или Reg Query
По chgport
:
с помощью этой переменной: !_com_[%%L]!
для получения COM + n
с помощью этой переменной: %%L
, чтобы получить n
@echo off & setlocal enabledelayedexpansion & set "_cnt=0"
cd /d "%systemroot%"
for /f "tokens=* delims= " %%C in ('where /r . chgport.exe') do set "_chgport=%%~fC"
for /f "delims== tokens=1,2" %%i in ('!_chgport! ^| findstr /v "#"') do set /a "_cnt+=1" && set "_com_[!_cnt!]=%%i ^= %%j"
popd & echo/COM[n]: DEVICE[id]: & for /l %%L in (1 1 !_cnt!) do echo/!_com_[%%L]!
:: for get number only :: By using %%C**
for /l %%L in (1 1 !_cnt!) do for /f %%C in ('echo/!_com_[%%L]:COM^=!') do set "_com_N=%%C" & echo/ !_com_N! = COM%%C
:: Результат командной строки ::
COM[n]: DEVICE[id]:
COM3 = \Device\huawei_cdcacm_AcmSerial1
COM4 = \Device\huawei_cdcacm_AcmSerial0
3 = COM3
4 = COM4
По Reg Query
: с помощью этой переменной: !_com#!
для получения COM + n
с помощью этой переменной: !_com#:COM=!
для получения n
@echo off & setlocal enabledelayedexpansion
set _key="HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM"
for /f "tokens=1,3 delims= " %%i in ('reg query !_key! ^| find /v "HKEY"') do (
set "_device=%%i" & set "_com#=%%j" & echo/!_com#! !_device! )
:: for get number only :: By using !_com_N:~3! to get [n]
for /f "tokens=3 delims= " %%c in ('reg query !_key! ^| find /v "HKEY"') do set "_com_N=%%c"&& echo/!_com_N:~3! = !_com_N!
:: Результат командной строки ::
COM4 \Device\huawei_cdcacm_AcmSerial0
COM3 \Device\huawei_cdcacm_AcmSerial1
4 = COM4
3 = COM3
Извините,Английский не мой родной язык ..