使用脚本和传输文件在Windows 7上检测usb

时间:2014-03-27 11:41:57

标签: batch-file

我尝试了很少的脚本,据我所知,我可以理解为什么它无法检测到我的USB驱动器。 我试图检测一个USB驱动器,只是想将文件从PC传输到USB。对此有任何启发都会非常有帮助。我得到命令C; D;我和D驱动器是我的USB驱动器,我有一个名为smrithi的文件夹,我想将所有文件传输到驱动器D从C:/ desktop / 到/ smrithi usb上的文件夹。 我得到了

device found :c
Device Found : d
Device Found :I

这是我的剧本:

@echo off
   setLocal Enabledelayedexpansion


for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  if exist %%d:\custom\ (
     ECHO Device Found : %%d
  )
) 

2 个答案:

答案 0 :(得分:3)

@echo off
    setLocal Enabledelayedexpansion

rem To only search for a predefined set of volumes (see VOL X: command output)
    set "filterVolumes=F111-0001 A0C1-C34C 0000-0000"

rem To search for all volumes
    rem set "filterVolumes=:"

    set "myDrive="

    for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
        if not defined myDrive vol %%a: 2>nul | findstr /i /l "%filterVolumes%" > nul && ( 
            if exist "%%a:\smrithi\" set "myDrive=%%a:"
        )
    )

    if defined myDrive (
        echo drive found [%myDrive%]
        rem xcopy "%userprofile%\desktop" "%myDrive%\smrithi" /e
    ) else (
        echo USB drive has not been found
    )

    endlocal

这使用vol命令查看驱动器是否可用。如果是,则测试是否存在所需文件夹以确定它是否是搜索到的驱动器。

要测试驱动器是否为必需驱动器,将分析vol命令的输出以查看卷的ID。如果它与预定义的有效值列表匹配,则会考虑驱动器。如果没有,它将被丢弃。如果filterVolumes变量包含:,则会考虑所有卷。

答案 1 :(得分:1)

试试这个:

@echo off
Setlocal 
for /f %%d in (
  'wmic logicaldisk where "drivetype=2 and access=0" get name^|find ":"'
  ) DO (
    If exist "%%d\smrithi\" (
       Echo folder found. 
    ) ELSE (
       Echo Folder not found. 
    )
)