Войти

Показать полную графическую версию : [решено] Поиск номера com порта по типам устройств.


Kainos
31-12-2014, 12:19
Ребят необходим скрипт который будет искать номер порта по части названия устройства. И выводить его в переменную.


Вот данные от команды WMIC path Win32_SerialPort get /value


Availability=2
Binary=TRUE
Capabilities=
CapabilityDescriptions=
Caption=MEI Inc. CASHFLOW SC Bill Acceptor (EBDS over USB) (COM3)
ConfigManagerErrorCode=0
ConfigManagerUserConfig=FALSE
CreationClassName=Win32_SerialPort
Description=MEI Inc. CASHFLOW SC Bill Acceptor (EBDS over USB)
DeviceID=COM3
ErrorCleared=
ErrorDescription=
InstallDate=
LastErrorCode=
MaxBaudRate=128000
MaximumInputBufferSize=0
MaximumOutputBufferSize=0
MaxNumberControlled=
Name=MEI Inc. CASHFLOW SC Bill Acceptor (EBDS over USB) (COM3)
OSAutoDiscovered=TRUE
PNPDeviceID=USB\VID_0BED&PID_1100\28881701108
PowerManagementCapabilities={1}
PowerManagementSupported=FALSE
ProtocolSupported=
ProviderType=RS232 Serial Port
SettableBaudRate=TRUE
SettableDataBits=TRUE
SettableFlowControl=TRUE
SettableParity=TRUE
SettableParityCheck=TRUE
SettableRLSD=TRUE
SettableStopBits=TRUE
Status=OK
StatusInfo=3
Supports16BitMode=FALSE
SupportsDTRDSR=TRUE
SupportsElapsedTimeouts=TRUE
SupportsIntTimeouts=TRUE
SupportsParityCheck=TRUE
SupportsRLSD=TRUE
SupportsRTSCTS=TRUE
SupportsSpecialCharacters=TRUE
SupportsXOnXOff=TRUE
SupportsXOnXOffSet=TRUE
SystemCreationClassName=Win32_ComputerSystem
SystemName=ATM001
TimeOfLastReset=

Iska
31-12-2014, 13:40
Вот данные от команды WMIC path Win32_SerialPort get /value »
Ну, и? Где в этом выводе «часть названия устройства», и где «номер порта»?

Kainos
03-01-2015, 12:02
Iska,
Я предполагаю что Name=MEI Inc. CASHFLOW SC Bill Acceptor это имя но оно может немного меняться постоянной частью остается Name=MEI.
А номер порта DeviceID=COM3.

Iska
03-01-2015, 16:48
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq skip=1 delims=" %%j in (
`wmic.exe path Win32_SerialPort where "Name LIKE 'MEI%%'" get DeviceID`
) do for /f %%k in ("%%~j") do (
set sDeviceID=%%~k
echo !sDeviceID!
)

endlocal
exit /b 0




© OSzone.net 2001-2012