2014-03-27 45 views
1

我尝试了几个脚本,而不是我的知识,我可以理解为什么它无法检测到我的USB驱动器。 我想检测一个USB驱动器,只是想从PC传输文件到USB。任何关于此的信息都会很有帮助。我得到的命令C; D;我和D驱动器是我的USB驱动器,我有它的文件夹名为smrithi对此我想从C:/ desktop/将所有文件传输到D驱动器。到usb上的/ smrithi文件夹。 但我得到使用脚本和传输文件在Windows 7上检测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 
) 
) 
+0

如果发现这三个驱动器,那么他们三个都在根目录下有一个'custom'文件夹。该代码将始终使用最后一个匹配的驱动器。 – foxidrive

回答

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命令的输出以查看卷的标识。如果它与预定义的有效值列表匹配,则考虑驱动器。如果不是,则丢弃。如果filterVolumes变量包含:,则考虑所有卷。

+0

这对我工作如何trnasfer文件从本地发现驱动器... – smrithi

+0

如果他们有一个smrithi文件夹的c:或d:驱动器的根? –

+0

不,我给文件夹的唯一名字 – smrithi

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. 
    ) 
) 
+0

我得到一个错误,像没有可用的实例,但USB驱动器在那里 – smrithi

+0

嗯。如果你只是从命令行键入'wmic logicaldisk get deviceid,drivetype,access',你会得到什么?用输出更新你的答案。 –

+0

测试您的代码。如果你属于管理员组,它会很好地工作。如果没有,wmic将直接向控制台返回“No instances available”消息。 –

相关问题