我想用批处理显示当前USB设备的标识码、VID、PID,这是我自己的代码- for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
- set var=%%i
- echo 设备标识码:%%i VID_%var:~0,4% PID_%var:~-4%
- )
复制代码 执行结果是
设备标识码:054C00C1 VID_~0,4var:~-4
设备标识码:05AC12xx VID_~0,4var:~-4
设备标识码:05AC13xx VID_~0,4var:~-4
设备标识码:05DCA431 VID_~0,4var:~-4
显然执行结果不正确。
----------------------------------------------------------------------------------------------------------------------------
奇怪的是,将上述代码复制一遍粘到其下面执行出来,复制的那段执行出来就没问题,就是下面这样:- for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
- set var=%%i
- echo 设备标识码:%%i VID_%var:~0,4% PID_%var:~-4%
- )
- for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
- set var=%%i
- echo 设备标识码:%%i VID_%var:~0,4% PID_%var:~-4%
- )
复制代码 执行结果是
设备标识码:054C00C1 VID_~0,4var:~-4
设备标识码:05AC12xx VID_~0,4var:~-4
设备标识码:05AC13xx VID_~0,4var:~-4
设备标识码:05DCA431 VID_~0,4var:~-4
设备标识码:054C00C1 VID_05DC PID_A431
设备标识码:05AC12xx VID_05DC PID_A431
设备标识码:05AC13xx VID_05DC PID_A431
设备标识码:05DCA431 VID_05DC PID_A431
----------------------------------------------------------------------------------------------------------------------------
请问这是什么原因?要想得到如下所示的正确结果该怎么改?
设备标识码:054C00C1 VID_05DC PID_A431
设备标识码:05AC12xx VID_05DC PID_A431
设备标识码:05AC13xx VID_05DC PID_A431
设备标识码:05DCA431 VID_05DC PID_A431 |