如何在驱动器盘符未知且文件夹路径为 random/unknown 时查找文件夹。使用 wmic logicaldisk 在批处理文件中获取标题?

How to find folder when drive letter is unknown and folder path is random/unknown. using wmic logicaldisk get caption in Batch File?

条件:

我有 3 个不同的文件夹。 Folder1Folder2Folder 3

它们被放置在一个未知的 USB 驱动器中。

路径也是随机的。

有时是:

G:\Hello\Folder1
G:\Hello\Folder2
G:\hello\Folder3

有时是:

k:\Man\Google\Hey\Folder1
k:\Man\Google\Hey\Folder2
k:\Man\Google\Hey\Folder3

表示它们存在于随机 driver 个字母中,并且还想找到任何随机子文件夹。

我用过:

@echo off
for %%a 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 %%a:\HOPE\EXTRA\Folder1 (
        goto true
    )
)

这里我不想使用 (C D E F G H I J K L M N O P Q R S T U V W X Y Z) 因为 cmd 在找到 driver 字母但未安装 voume 时显示错误。

所以我使用了以下脚本

@echo off
CLS&ECHO.&ECHO   Vol Access   Type
echo.
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.
ECHO.
ECHO  Available Volumes: %DVF%
echo.
echo.
TIMEOUT /T 5

我想从可用卷中查找 Folder1Folder2folder 3,但这里 %DVF% 的输出是 C: D: K: G:

所以我想搜索每个可用的卷以找到这 3 个文件夹在 1 个卷中可用,然后 set 该驱动器 = %foldervol% 或其他内容,用于下一个代码或 goto next

所以有人可以帮助我使用我在这里提到的相同脚本吗?

我想从未知的可用卷中找到所有三个文件夹,然后回显在卷名中找到的文件夹并转到下一个?

问题应仅限于一个问题,以下应解决被认为是您的主要问题的问题,即输出您的 USB 驱动器盘符。它不会搜索或定位您的目录,因为这是一个完全不同的问题,您没有提供代码或其他自我尝试的指示。

@Echo Off
SetLocal EnableExtensions

For /F Tokens^=2^ Delims^=^" %%G In ('%SystemRoot%\System32\wbem\WMIC.exe
 DiskDrive Where "InterfaceType='USB'" Assoc:List
 /AssocClass:Win32_DiskDriveToDiskPartition 2^>NUL ^|
 %SystemRoot%\System32\find.exe "__R"') Do For /F Tokens^=4^ Delims^=^" %%H In (
    '%SystemRoot%\System32\wbem\WMIC.exe Path Win32_LogicalDiskToPartition
     2^>NUL ^| %SystemRoot%\System32\find.exe "%%G"') Do Echo %%H

%SystemRoot%\System32\timeout.exe /T 5 /NoBreak 1>NUL

您显然会将 9 行的 Echo %%H 替换为您的 'folder' 搜索代码,使用 %%H\ 作为每个返回的 USB 驱动器的根目录。