5

我正在尝试编写一个批处理脚本来检测 USB 驱动器,如果它已插入,例如将c:\test\big.txt 复制到 USB 驱动器,然后循环检测另一个闪存驱动器。

4

4 回答 4

9
@echo off
for %%d in (D: E: F: G: H: I: etc...) do (
   if exist %%d\nul (
      echo USB at drive %%d connected
   )
)

编辑:以下是正确的方法:

@echo off
for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do (
   for %%c in (%%b) do (
      for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do (
         if %%d equ Removable (
            echo Drive %%c is Removable (USB^)
         )
      )
   )
)
于 2012-06-03T19:21:20.680 回答
1

我知道这是旧的但是......

@echo off

for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 2^>NUL`) do (

if %%l equ 2 (
copy c:\test\big.txt %%i
        )
        )

这当然是假设两个驱动器都已插入。

于 2013-11-22T19:14:26.890 回答
1

上面的代码有一个缺陷,下面的代码已经处理了这个代码在XP中工作,并给你USB驱动器号,如果没有连接USB设备,它会告诉你!

:: 2013 年 10 月 12 日凌晨 2:39 成功!!!:: 由 BOBBY GOREJA 改进

@echo off

set usbdrv=
set usb=No
:: Above two lines on 12 Oct 2013

fsutil fsinfo drives >de
type de | find "Drives:" /v >dlist

for /F "tokens=1" %%c in ('type dlist') do (

               for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do (

               rem echo Token is %%d

             if %%d equ Removable (

            echo Drive %%c is Removable (USB^)

             set usbletter=%%c 
             set usb=Yes

            echo USB drive letter is %usbletter%

rem     set usbdrv = %%c   <<< this does NOT work!
 rem              echo USB1 drive letter is %usbdrv%

                                                                )
                                         )
                                    )
 del de
 del dlist

             echo  REPEAT:Device at %usbletter%

if  "%usb%"=="No" echo No USB Device Connected .
set usb=
于 2013-10-22T08:03:51.177 回答
0

@Aacini 我今天没有很好的设置这个案例,所以我试着找到我的 USB 网络摄像头。我使用devmgmt.mscdevcon listclasses计算出连接的 USB 相机的成员资格。经过几次测试,我到达了devcon find =Image USB\*. 我认为为 USB 大容量存储设备做同样的事情会很简单,所以我尝试了devcon find =Volume(每个列表类)。不幸的是,这会导出一个 GUID,然后您必须将其映射到驱动器号。粗略地看一下这个溢出表明您可以使用注册表从注册表中执行此操作reg query,但目前看来这fsutil对您的情况来说是最简单的。

于 2012-06-13T07:11:24.233 回答