[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理怎样显示当前USB设备标识码、VID、PID?

我想用批处理显示当前USB设备的标识码、VID、PID,这是我自己的代码
  1. for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
  2. set var=%%i
  3. echo 设备标识码:%%i   VID_%var:~0,4%   PID_%var:~-4%
  4. )
复制代码
执行结果是
设备标识码:054C00C1   VID_~0,4var:~-4
设备标识码:05AC12xx   VID_~0,4var:~-4
设备标识码:05AC13xx   VID_~0,4var:~-4
设备标识码:05DCA431   VID_~0,4var:~-4
显然执行结果不正确。
----------------------------------------------------------------------------------------------------------------------------
奇怪的是,将上述代码复制一遍粘到其下面执行出来,复制的那段执行出来就没问题,就是下面这样:
  1. for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
  2. set var=%%i
  3. echo 设备标识码:%%i   VID_%var:~0,4%   PID_%var:~-4%
  4. )
  5. for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
  6. set var=%%i
  7. echo 设备标识码:%%i   VID_%var:~0,4%   PID_%var:~-4%
  8. )
复制代码
执行结果是
设备标识码: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

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=8 delims=_\" %%i in ('REG QUERY HKLM\system\CurrentControlSet\Control\usbstor') do (
  4.     set var=%%i
  5.     echo 设备标识码:%%i   VID_!var:~0,4!   PID_!var:~-4!
  6. )
  7. pause
复制代码

TOP

返回列表