批处理脚本查找挂载设备的驱动器号

我正在尝试编写批处理脚本来查找特定的挂载设备。 我在Windows 7中。

我知道该设备将有文件夹驱动器:\习惯所以我想看看所有possabilitiesfind一个设备与这条path

这是我到目前为止

@echo off setLocal Enabledelayedexpansion for %%d in (cdefghijklmnopqrstuvw xyz) do ( if exist %%d:\custom ( ECHO Device Found : %%d ) ) 

这不工作,它认为它存在每个驱动器号..所以我看到“设备find”每个单个驱动器号。 这是为什么? 我是否在谈论这个错误? 如何find根目录上具有“自定义”文件夹的驱动器号?

谢谢,
斯蒂芬妮

Solutions Collecting From Web of "批处理脚本查找挂载设备的驱动器号"

在路径的末尾添加\

 IF EXIST %%d:\custom\ (...) 

for语句中使用fsutil fsinfo drives for而不是驱动器号的静态列表。

 for /f "tokens=1,*" %%i in ('fsutil fsinfo drives') do ( :: work with %%j here ) 

但是,如果将驱动器号发送给没有介质的设备,则可能仍会出现错误。 无论哪种方式,检查如:

 if not exist O:\ @echo test 

对我来说工作得很好(有和没有)。 驱动器在我的系统上不存在,所以没有被删除时没有输出。

有点复杂,但这是避免在Win7上阻止错误的唯一解决方案:

 for /f "tokens=3" %%d in ('echo LIST Volume ^| DISKPART ^| findstr "Healthy Unusable"') do ( if exist %%d:\custom echo Device found ) 

我发现另一种方法是使用vol命令+检查ERRORLEVEL (如果== 1驱动器未安装):

 for /f "tokens=3" %%d in ('echo LIST Volume ^| DISKPART ^| findstr "Healthy Unusable"') do ( vol %%d: if !ERRORLEVEL!==0 if exist %%d:\custom echo Device found ) 

注:在WinXP DISKPART将不会看到可移动驱动器…

 @ECHO OFF :CICLO CLS&ECHO.&ECHO VER ESTADO UNIDADES CON WMIC SET "DVF=" FOR /F "tokens=1,*" %%A IN ('wmic logicaldisk get caption^, description ^| FIND ":"') DO ( VOL %%A >nul 2>&1 && ( CALL SET "DVF=%%DVF%% %%A"& ECHO %%A ^| ON. %%B) || ( ECHO %%A ^| OFF. %%B ) ) ECHO DEVICEFOUND: %DVF% TIMEOUT /T 5 >NUL GOTO:CICLO 

尝试这个:

 if exist %%d:\nul ( echo Device found %%d ) 

这适用于硬盘和pendrive:

 @echo off for %%? in (cdefghijklmnopqrstuvw xyz) do ( dir %%?:\ > nul 2>nul if exist %%?:\custom echo Device found(s): %%?:\ ) 

PS:运行WinXP