You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理中用wmic logicaldisk查找未知盘符随机路径下的三个指定文件夹

实现方案

直接替换原有脚本为以下完整版本即可,功能包含原有的可用卷检测+目标盘符查找逻辑:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
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

:: 查找包含三个目标文件夹的盘符
SET "foldervol="
FOR %%V IN (%DVF%) DO (
    SET "f1=0"
    SET "f2=0"
    SET "f3=0"
    :: 递归查找Folder1
    FOR /F "delims=" %%P IN ('dir /s /b /ad "%%V\Folder1" 2^>nul') DO SET "f1=1"
    :: 递归查找Folder2
    FOR /F "delims=" %%P IN ('dir /s /b /ad "%%V\Folder2" 2^>nul') DO SET "f2=1"
    :: 递归查找带空格的Folder 3
    FOR /F "delims=" %%P IN ('dir /s /b /ad "%%V\Folder 3" 2^>nul') DO SET "f3=1"
    :: 三个文件夹同时存在则匹配成功
    IF !f1! EQU 1 IF !f2! EQU 1 IF !f3! EQU 1 (
        SET "foldervol=%%V"
        ECHO 匹配成功,目标文件夹所在盘符为:!foldervol!
        GOTO RUN_NEXT
    )
)
:: 未匹配到的异常处理
ECHO 错误:未找到同时包含三个指定文件夹的可用卷
PAUSE
EXIT

:RUN_NEXT
:: 此处替换为你自己的后续业务代码
ECHO 即将执行后续逻辑,目标盘符变量foldervol值为:%foldervol%
PAUSE
ENDLOCAL
逻辑说明
  • 新增延迟变量扩展配置,保证for循环内部的变量修改可以正常读取
  • 仅遍历所有已检测到的可用卷,不会访问未挂载卷,不会触发CMD报错
  • 递归搜索每个盘符下的目标文件夹,支持任意上层路径,带空格的Folder 3通过引号包裹保证路径识别正确
  • 只要盘符下存在至少一个对应文件夹就判定匹配,三个文件夹同时存在时才会赋值%foldervol%变量,匹配成功后直接跳转到后续代码段
  • 新增未匹配到目标的异常提示逻辑,避免脚本无响应

内容的提问来源于stack exchange,提问作者haseakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:48:01