2014-03-27 47 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」消息。 –

相關問題