检测USB并使用批处理脚本将*。*复制到USB驱动器

时间:2012-06-03 07:25:56

标签: batch-file usb

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

4 个答案:

答案 0 :(得分:8)

@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^)
         )
      )
   )
)

答案 1 :(得分:1)

上面的代码有一个缺陷,在以下代码中已经注意到了 该代码在XP中工作,如果没有USB设备,则为您提供USB驱动器号 是连接的,它告诉你了!

:: SUCCESS @ 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=

答案 2 :(得分: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
        )
        )

这假设当然插入了两个驱动器。

答案 3 :(得分:0)

@Aacini我今天对这种情况没有很好的设置,所以我尝试找到我的USB网络摄像头。我使用devmgmt.mscdevcon listclasses来确定连接的USB相机所具有的成员资格。经过几次测试后,我到达了devcon find =Image USB\*。我认为对USB大容量存储设备做同样的操作非常简单,所以我尝试了devcon find =Volume(每个列表类)。不幸的是,这会转储出一个GUID,然后你必须映射到一个驱动器号。粗略地看一眼this溢出建议您可以使用reg query从注册表中执行此操作,但此时似乎fsutil最适合您的情况。