我尝试了很少的脚本,据我所知,我可以理解为什么它无法检测到我的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
)
)
答案 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.
)
)